Python自动操作GUI之PyAutoGUI怎么使用


本篇内容主要讲解“Python自动操作GUI之PyAutoGUI怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python自动操作GUI之PyAutoGUI怎么使用”吧!我们今天的主人公是 pyautoguipyautogui 是一个纯 Python 的 GUI 自动化工具,通过它可以让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。模块安装,打开cmd,输入:成功展示:
Successfully installed PyTweening-1.0.4 mouseinfo-0.1.3 pyautogui-0.9.53 pygetwindow-0.0.9 pymsgbox-1.0.9 pyperclip-1.8.2 pyrect-0.2.0 pyscreeze-0.1.28安装好后就可以直接使用了。导包pyautogui.position() 获取鼠标位置pyautogui.onScreen(x,y) 判断坐标(x,y)是否在屏幕内,返回True,Flase
以右上角为(0,0)点桌面操作最基本的就是鼠标操作了,我们可以控制鼠标的移动:pyautogui.moveTo(x,y) 绝对位置移动 ,移动到x,ypyautogui.moveRel(x,y) 相对位置移动 ,从当前位置移动整个桌面是以左上角为坐标轴的原点,所有的操作都以这个原点,来确定操作位置。第一行是将鼠标移动到指定的像素(200,400)位置;
第二行代码是将鼠标按照当前点向右移动200px,向下移动500px这个方向移动。两行代码中都有一个共同的参数 duration,这个参数表示移动时间,即在指定时间内完成移动操作,单位是。运行这两行代码,观察屏幕鼠标的变化,是不是很神奇?通常,我们的鼠标有左右两个按键,高级点的鼠标中间还有个按键。我的鼠标只有两个按键,中间没有按键,唉~
pyautogui针对这三个按键操作都有相应的处理:pyautogui.click()
(100,100, clicks=2,interval=0.5,button=‘right’,duration=0.2)
位置,点击次数,间隔时间,右键(默认左键),移动间隔left:左键 right:右键 middle:中键鼠标点击,如果不指定 button 参数,默认是点击左键,前面两个参数就是点击坐标的位置。运行这段代码,看看你的桌面会发生什么?鼠标除了点击操作,还有双击操作:pyautogui.doubleClick() #双击右键pyautogui.leftClick() #双击左键pyautogui.middleClick() #双击中键pyautogui.tripleClick() #双击屏幕操作函数也很简单,相信大家一眼就能看明白,如果一眼看不明白,请多看几眼!熟悉前端的小伙伴可能会马上联想到,鼠标操作有按下和释放的过程,我们屏幕操作也有对应的控制:pyautogui.mouseUp() #释放pyautogui.mouseDown() #点击 只需要输入键就可pyautogui.dragTo() #绝对位置拖动pyautogui.dragRel() #相对位置拖动
例:pyautogui.dragRel(-100,200,duration=0.5,button=‘right’)我们可以控制鼠标拖动到指定坐标位置,并且设置操作时间和按键:这个运行效果和前面移动类似。根据前面移动的经验,我们也有按照方向拖动鼠标:在桌面操作中,我们有时候需要滚动鼠标到达向上或者向下的位置,这时候我们可以使用 scroll 这个函数来控制:pyautogui.scroll() #(,x,y) 滑动距离(+上 , -下),位置参数是整数,表示向上或向下滚动多少个单位,这个单位根据不同的操作系统可能不一样。如果向上滚动,传入正整数,向下滚动传入负整数。pyautogui.keyDown() #模拟按键放下,内容为按键符pyautogui.keyUp() #模拟按键松开pyautogui.press() #模拟一次按键过程,即keyDown和keyUP的组合pyautogui.hotkey() #press一样 区别:可以组合按键pyautogui.typewrite() #模拟键盘输出内容举个例子,大家平时输入感叹号(!)是怎么操作键盘的?按住 shift 按键,然后再按住 1 免费云主机域名按键,就可以了。用pyautogui控制就是:运行上面的代码,如果你的鼠标是放在编辑框中,你会得到一个感叹号!我们还可以直接输出内容:第一个参数是输出的内容,第二个参数是间隔时间,单位是秒。运行上面代码,你的编辑器里面就会每隔1秒钟按顺序输出 python 的6个字母。有时我们需要输入键盘的一些特殊的符号按键,比如 换行、方向键等,这些有相对应的键盘字符串表示:运行上面代码,编辑器里面就会输出 python 之后换行。其他特殊按键对应的字符串请参考官方说明。如果我要复制一个内容,大部分情况下会使用快键键 ctrl + c,按照上面讲的,我们应该这么实现:实现的效果和上面的4行代码相同。键盘字符串 说明
enter(或return 或 n) 回车
esc ESC键
shiftleft, shiftright 左右SHIFT键
altleft, altright 左右ALT键
ctrlleft, ctrlright 左右CTRL键
tab (t) TAB键
backspace, delete BACKSPACE 、DELETE键
pageup, pagedown PAGE UP 和 PAGE DOWN键
home, end HOME 和 END键
up, down, left,right 箭头键
f1, f2, f3…. f12 F1…….F12键
volumemute, volumedown,volumeup 声音变大变小静音(有些键盘没有)
pause PAUSE键,暂停键
capslock CAPS LOCK 键
numlock NUM LOCK 键
scrolllock SCROLLLOCK 键
insert INSERT键
printscreen PRINT SCREEN键
winleft, winright Win键(windows )
command command键(Mac OS X )
option option(Mac OS X)我们先来假设一个场景:我现在要在屏幕上找到一个红色的点,你会怎么做?通常的做法是拿到这个红色点的颜色值,然后再对屏幕上的点逐个进行比较,直到找到为止。pyautogui 为我们这个操作场景提供了支持,分别有三个函数可以完成这三件事情。img = pyautogui.screenshot() #默认是全屏,可是输入截屏大小img.save(‘img.jpg’)pyautogui.screenshot(‘image’,region=(x,y,w,h) # 返回屏幕的截图,是一个Pillow的image对象pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;pyautogui.locateCenterOnScreen(‘image’, region=(x,y,w,h) ) #图片匹配功能,查找image图片在屏幕中的位置,region限制查找范围第一个是获取屏幕截图函数,它可以返回一个 Pillow 的 image 对象; 第二个是获取屏幕截图中指定坐标点的颜色,返回 rgb 颜色值;第三个是将指定坐标点的颜色和目标的颜色进行比对,返回布尔值。我们再来升级一下需求:我现在要在屏幕上找到 edge 浏览器的图标,你会怎么做?通常的做法是先知道 edge 浏览器的图标长啥样,是绿色还是蓝色,是胖的还是瘦的,对吧?然后再在屏幕上去进行图标的匹配,直到找到一个图标跟我们目标图标一样,就得到了结果。于是,我们的代码如下:你可以在桌面上将某个应用的图标截取下来,保存为图片,然后使用上面几行代码来识别,识别成功,你会返回类似下面的结果:这就是图片在桌面的位置,如果找不到图片,就会返回 None。当你在模拟一个桌面操作的时候,如果有分支操作需要根据实际情况来判断,你是不是需要有一个地方可以让你选择走哪个分支?pyautogui 贴心地考虑到了这种情况,你可以通过弹出一个选择框来中断当前的操作,选择操作分支。pyautogui.alert(text=,title=,button=) #按钮框 文本,标题,按钮名pyautogui.confirm(text=,title=,buttons=) #组合按钮框(多个按钮)pyautogui.prompt(text=,title=,default=) #输入框 #文本,标题,默认文字pyautogui.password(text=,title=,default=,mask=) #密码输入框 #输入框 #文本,标题,默认文字,掩码样式pyautogui.mouseInfo() #获取鼠标的信息这里就是我们 HTML 页面的 confirm 选择框,选择了选项之后,我们可以获取到选择的选项,然后基于这个选项做判断,进入相应的操作分支。除了选择确认框之外,还有其他一些提示信息框:pyautogui 的基本知识就给大家介绍到这里,这个 python 模块的功能十分强大,函数都非常简单,对 python 初学者比较友好。学了这些基本知识之后,你可以运用这些基本知识的组合,去实现一些有趣的桌面自动化操作,快去尝试一把吧!我们通过今天的基础知识的学习,我们可以通过pyautogui+PIL结合来实现网页自动点赞的实战练习。我们先介绍一个PIL库下一个裁剪图片的函数crop。使用PIL裁切图片使用PIL需要引用Image,使用Image的open(file)方法可以返回打开的图片,使用crop((x1,y1,x2,y2))方法可以对图片做裁切。
该区域是一个元组,(x1,y1)是图片左上角的坐标,(x2,y2)是图片右下角的坐标。
Python Imaging Library 使用左上角为 (0, 0)的坐标系统。
首先我们要知道点赞的图片的样子根据截取的屏幕仅截取带赞的手势图片,可以用pyautogui.mouseInfo()获取图片的位置(1754,595,1803,631)
或者通过pyautogui.location()来确定首尾坐标在当前目录下得到如下图片。
未点赞之前的图片是这样的:
自动点赞之后:

是不是很厉害呢?其实pyautogui还可以做很多东西,比如说自动发信息,其原理还是不变的,找到对应的位置,输入内容,发送就可以了,在这里我就不演示啦!有兴趣的可以去试试哦~~~完整代码到此,相信大家对“Python自动操作GUI之PyAutoGUI怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: css语言的概念是什么

这篇文章主要讲解了“css语言的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css语言的概念是什么”吧! css语言是一种用来表现HTML或XML等文件样式的计算机语言;其英文全称是“Cascadi…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/19 11:43
下一篇 03/19 11:55

相关推荐