赞
踩
目录
PyAutoGUI是一个纯Python的GUI自动化工具,通过它可以让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。PyAutoGui 也一个流行的跨平台库(具有基于图像的搜索,没有基于文本的控件操作)。
在cmd窗口输入以下代码进行安装:
pip install pyautogui
参考学习:
常用功能操作如下:
获取当前鼠标的位置
- x,y=pyautogui.position()
- print(x,y) # 输出的结果是:312,198 (结果是鼠标当前位置,可以想象成以屏幕左上角为原点的第一象限)
获取当前屏幕分辨率
pyautogui.size() # 输出的结果是:(1920,1080) (结果是当前屏幕分辨率)
判断x, y是否在屏幕上
pyautogui.onScreen(x,y) # 输出的结果是:True/False
移动鼠标函数
pyautogui.moveTo(x,y,s) #鼠标移动到(x,y)并保持s秒,同理还有拖动方法dragTo(x,y,s)
pyautogui.click(x,y) #鼠标点击(x,y)
pyautogui.rightClick(x,y) #鼠标右击(x,y),同理还有middleClick(中击),doubleClick(双击),tripleClick(三击)
pyautogui.scroll(x,y) #鼠标在(x,y)滚动
pyautogui.mouseDown(x,y,button='left') #鼠标左边按下,同理mouseUp为鼠标松开
输入键盘内容函数
pyautogui.typewrite("hello") #输入"hello"
pyautogui.typewrite(['a','b','c']) # 依次输入"a","b","c"
pyautogui.hotkey('ctrl','c') #按键ctrl+c
pyautogui.keyUp(key_name) #松开键盘
pyautogui.keyDown(key_name) #按下键盘
信息弹窗函数
pyautogui.alert('stop') # 出现"stop"的警示框
截屏函数
image=pyautogui.screenshot(region(0,0,300,400)) # region参数,截图区域,由左上角坐标、宽度、高度4个值确定,如果指定区域超出了屏幕范围,超出部分会被黑色填充,默认`None`,截全屏
location= pyautogui.locateOnScreen('apple.png') #返回图片的位置
x,y =pyautogui.locateCenterOnScreen('apple.png') #返回图片中心的位置
一段应用代码举例:
- import time
-
- import pyautogui
-
- pyautogui.click(550, 190)
- for i in range(1, 500):
- time.sleep(1)
-
- pyautogui.click(550, 285)
-
- time.sleep(1) # 为了方便看效果,让每次操作后停留1秒
-
- pyautogui.hotkey('ctrl','a') #按键ctrl+a
-
- time.sleep(1)
-
- pyautogui.click(420, 90)
-
- time.sleep(1)
-
- pyautogui.typewrite("{}-timeseries-20210328.xls".format(i)) #输入文件名
-
- time.sleep(1)
-
- pyautogui.hotkey('enter') #按键enter
-
- time.sleep(1)
-
- pyautogui.click(550, 190)
-
- time.sleep(1)
-
- pyautogui.hotkey('down') #按下方向键
总结:pyautogui的主要功能包括:①GUI 控制功能,②鼠标操作,③屏幕处理,④键盘输入尤其讲到其中的屏幕处理,注意控制鼠标的操作,不能盲目的进行,需要监控屏幕上的内容,从而决定要不要进行对应的操作。
Lackey - Sikuli的纯Python替代品(基于图像模式匹配)。有模拟鼠标点击的功能。
库安装地址:Lackey · PyPI
在Cmd窗口中使用whl安装:
pip install python_dateutil-2.5.3-py2.py3-none-any.whl
lackey手册地址:
Welcome to Lackey’s documentation! — Lackey 0.7.3 documentation
AXUI - MS UI Automation API的一个包装器。有模拟鼠标点击的功能。
winGuiAuto - 另一个使用Win32 API的模块。有模拟鼠标点击的功能。
pywinauto 可以获取客户端界面元素的属性通过触发事件,完成对页面的操作。这个功能可以实现某些客户端按钮的点击事件在电脑熄屏的情况下进行自动化操作注意这里要区别于鼠标点击事件,鼠标点击是模拟鼠标进行点击发送信号,需要移动鼠标无法在熄屏下进行操作。
pywinauto支持的控件包括:
- 标准Win32控件:MFC, WTL, VB6和其他一些使用WinForms的老应用
- 所有基于MS UI Automation的标准部件:WPF, Qt, 所有浏览器, Windows文件资源管理器和其他
网上简单一张图,概括了基本所有:
如果基于windows的自动化,建议还是学习pywinauto~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。