Python pyautogui,pyautogui怎么用
本文主要想和大家聊聊Python如何利用自动操作GUI神器——PyAutoGUI实现桌面自动操作。感兴趣的朋友可以了解一下。
目录
GUI控制神器鼠标操作鼠标移动鼠标点击鼠标拖动鼠标滚动屏幕处理获取屏幕截图键盘输入键盘功能特殊符号快捷键信息框总结我们之前已经讲过如何在浏览器中使用Python实现页面自动化,不管是哪种方式实现,都是定位页面中的元素来执行相应的操作。
今天,我们来谈谈如何在桌面上实现操作的自动化。桌面自动化和浏览器页面自动化类似,需要将鼠标定位在桌面上,然后根据定位的位置进行相应的操作。
GUI 控制神器
今天,我们的英雄是pyautogui,这是一个纯粹的Python GUI自动化工具。通过它,程序可以自动控制一系列的鼠标和键盘操作,达到自动化测试的目的。
该模块的安装也是老式的:
pip3安装pyautogui
一旦安装,您可以直接使用它。
鼠标操作
鼠标移动
最基本的桌面操作是鼠标操作。我们可以控制鼠标的移动:
#移动鼠标
pyautogui.moveTo(200,400,持续时间=2)
pyautogui.moveRel(200,500,持续时间=2)
整个桌面就是左上角坐标轴的原点,所有操作都以这个原点来确定操作位置。
第一行是将鼠标移动到指定的像素(200,400)位置,第二行是根据当前点将鼠标向右移动200px,向下移动400px。
两行代码中有一个共同的参数duration,表示移动的时间,即在规定的时间内完成移动操作,单位是秒。
运行这两行代码,观察屏幕鼠标的变化,是不是很神奇?
我们还可以得到鼠标的位置:
print(pyautogui.position())
这个很好理解,就是获取鼠标在当前屏幕的坐标位置,运行这行代码,我们会得到如下信息:
点(x=400,y=900)
鼠标点击
通常我们的鼠标有左右按键,高级鼠标中间有一个按键。
我的鼠标只有两个按键,但是中间没有按键,唉~
Pyautogui对这三个关键操作有相应的处理:
#鼠标点击,默认左键
pyautogui.click(100,100)
#单击左边的按钮
pyautogui.click(100,100,button=left )
#右键单击
pyautogui.click(100,300,button=right )
#点击中间
pyautogui.click(100,300,button=middle )
用鼠标点击。如果不指定button参数,默认是单击左键。前两个参数是单击坐标的位置。
运行这段代码,看看你的桌面会发生什么?
除了鼠标点击操作,还有双击操作:
#双击左边的按钮
pyautogui.doubleClick(10,10)
#双击
pyautogui.rightClick(10,10)
#双击中间的按钮
pyautogu
i.middleClick(10,10)
操作函数也很简单,相信大家一眼就能看明白,如果一眼看不明白,请多看几眼!
熟悉前端的小伙伴可能会马上联想到,鼠标操作有按下和释放的过程,我们屏幕操作也有对应的控制:
# 鼠标按下
鼠标拖动
我们可以控制鼠标拖动到指定坐标位置,并且设置操作时间:
pyautogui.dragTo(100,300,duration=1)
这个运行效果和前面移动类似。
根据前面移动的经验,我们也有按照方向拖动鼠标:
pyautogui.dragRel(100,300,duration=4)
鼠标滚动
在桌面操作中,我们有时候需要滚动鼠标到达向上或者向下的位置,这时候我们可以使用scroll
这个函数来控制:
pyautogui.scroll(30000)
参数是整数,表示向上或向下滚动多少个单位,这个单位根据不同的操作系统可能不一样。如果向上滚动,传入正整数,向下滚动传入负整数。
屏幕处理
获取屏幕截图
我们先来假设一个场景:我现在要在屏幕上找到一个红色的点,你会怎么做?通常的做法是拿到这个红色点的颜色值,然后再对屏幕上的点逐个进行比较,直到找到为止。
pyautogui
为我们这个操作场景提供了支持,分别有三个函数可以完成这三件事情。
im = pyautogui.screenshot()
第一个是获取屏幕截图函数,它可以返回一个 Pillow 的 image 对象; 第二个是获取屏幕截图中指定坐标点的颜色,返回 rgb 颜色值;第三个是将指定坐标点的颜色和目标的颜色进行比对,返回布尔值。
我们再来升级一下需求:
我现在要在屏幕上找到 edge 浏览器的图标,你会怎么做?
通常的做法是先知道 edge 浏览器的图标长啥样,是绿色还是蓝色,是胖的还是瘦的,对吧?然后再在屏幕上去进行图标的匹配,直到找到一个图标跟我们目标图标一样,就得到了结果。
于是,我们的代码如下:
# 图像识别(一个)
你可以在桌面上将某个应用的图标截取下来,保存为图片,然后使用上面几行代码来识别,识别成功,你会返回类似下面的结果:
Box(left=20,top=89,width=33,height=34)
[Box(left=20,top=89,width=33,height=34)]
这就是图片在桌面的位置,如果找不到图片,就会返回 None。
键盘输入
键盘函数
键盘输入有下面几个常用的函数:
keyDown():模拟按键按下
keyUP():模拟按键松开
press():模拟一次按键过程,即 keyDown 和 keyUP 的组合
typewrite():模拟键盘输出内容
举个例子,大家平时输入感叹号(!)是怎么操作键盘的?
按住 shift 按键,然后再按住 1 按键,就可以了。用pyautogui
控制就是:
pyautogui.keyDown(shift)
运行上面的代码,如果你的鼠标是放在编辑框中,你会得到一个感叹号!
我们还可以直接输出内容:
pyautogui.typewrite(python, 1)
第一个参数是输出的内容,第二个参数是间隔时间,单位是秒。
运行上面代码,你的编辑器里面就会每隔1秒钟按顺序输出 python 的6个字母。
特殊符号
有时我们需要输入键盘的一些特殊的符号按键,比如 换行、方向键等,这些有相对应的键盘字符串表示:
pyautogui.typewrite([p,y,t,h,o,n,enter])
运行上面代码,编辑器里面就会输出 python 之后换行。
其他特殊按键对应的字符串请参考官方说明。
快捷键
如果我要复制一个内容,大部分情况下会使用快键键 ctrl + c,按照上面讲的,我们应该这么实现:
pyautogui.keyDown(ctrl)
这样写起来很麻烦,而且需要掌控按键的按下和释放的顺序。
pyautogui
为我们提供了一个快捷的函数:
pyautogui.hotkey(ctrl,c)
实现的效果和上面的4行代码相同。
信息框
当你在模拟一个桌面操作的时候,如果有分支操作需要根据实际情况来判断,你是不是需要有一个地方可以让你选择走哪个分支?
pyautogui
贴心地考虑到了这种情况,你可以通过弹出一个选择框来中断当前的操作,选择操作分支。
way = pyautogui.confirm(领导,该走哪条路?, buttons=[农村路, 水路, 陆路])
这里就是我们 HTML 页面的 confirm 选择框,选择了选项之后,我们可以获取到选择的选项,然后基于这个选项做判断,进入相应的操作分支。
除了选择确认框之外,还有其他一些提示信息框:
# 警告框
总结
pyautogui
的基本知识就给大家介绍到这里,这个 python 模块的功能十分强大,函数都非常简单,对 python 初学者比较友好。学了这些基本知识之后,你可以运用这些基本知识的组合,去实现一些有趣的桌面自动化操作,快去尝试一把吧!
以上就是Python自动操作神器PyAutoGUI的使用教程的详细内容,更多关于Python PyAutoGUI的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。