1. 关于pyautogui
-
介绍
pyautogui是跨平台的图形用户界面(GUI)自动化测试工具,用Python语言编写。 -
pyautogui如何实现GUI自动化?
pyautoGUI模块通过屏幕xy坐标系统确定目标位置,控制鼠标和键盘发送虚拟击键和鼠标点击,完成点击按钮、填写表单等操作。 -
特点
跨平台,linux, windows, mac 都可用
Python语言编写, 可作为Python中的一个第三方库, 源码一览无余
操作简单,易上手
4.缺点
通过屏幕xy坐标系统确定元素位置,每台电脑的分辨率不一致,元素位置不一样,脚本复用性不高。如果需要将脚本在其他电脑上运行,需要手动修改元素位置。
2. pyautogui安装
只是在 mac 和 linux 下需要安装额外的依赖,windows 安装不需要其他依赖。
2.1 window下安装pyautogui
pip install pyautogui
2.2 Linux下安装pyautogui
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
python3 -m pip install pyautogui
上述四个都需要安装
3. pyautogui各种用法
pyautogui.position() #当前鼠标坐标 x , y
pyautogui.size() #当前屏幕的宽,高
pyautogui.onScreen(x,y) #如果(x,y)在屏幕范围内为True
3.1 键盘操作
参考
typewrite(message)键入给定消息字符串中的字符。
typewrite([key1,key2,key3])键入给定键字符串。
3.2 鼠标操作
参考
moveTo(x,y)将鼠标移动到指定的 x、y 坐标。
moveRel (xOffset,yOffset)相对于当前位置移动鼠标。
dragTo(x,y)按下左键移动鼠标。
dragRel (xOffset,yOffset)按下左键,相对于当前位置移动鼠标。
click(x,y,button)模拟点击(默认是左键)。
rightClick() 模拟右键点击。
middleClick() 模拟中键点击。
doubleClick() 模拟左键双击。
mouseDown(x,y,button)模拟在 x、y 处按下指定鼠标按键。
mouseUp(x,y,button)模拟在 x、y 处释放指定键。
scroll (units)模拟滚动滚轮。正参数表示向上滚动,负参数表示向下滚动。
3.1 弹框操作
1. alert()----显示一个简单的带文字和一个按钮的消息弹窗。
pyautogui.alert(text='', title='', button='ok')
# text 参数:弹框的内容,; title参数:弹框title button参数:被点击按钮的内容
eg:
#pls use python3.6
import pyautogui
a = pyautogui.alert(text='这是一个小可爱', title='可爱', button='ok')
print (a) #打印出被点击按钮上的文本内容, ok
#######如果选择不打印,点击按钮后,不会打印出按钮上的文本内容,不会打印ok
2. confirm()
pyautogui.confirm(text='', title='', buttons)
text 参数:弹框的内容,; title参数:弹框title button参数:是个list,被点击按钮的内容,内容支持自定义数字、文字
eg:
#pls use python3.6
import pyautogui
shop = pyautogui.confirm(text='这件衣服需要购买吗', title='购物', buttons=['OK', 'Cancel']) # OK和Cancel按钮的消息弹窗
num = pyautogui.confirm(text='你最喜欢的数字是哪个?', title='数字', buttons=range(10)) # 10个按键0-9的消息弹窗
print (shop) #打印被点击按钮上的文本内容
print (num) #打印被点击按钮上的文本内容
3. prompt()-----可以输入的消息弹窗,带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。
pyautogui.prompt(text='', title='', default='')
# text参数:传入弹框的内容;
# title参数:传入弹框title
# default参数:弹框中需要输入的内容
eg:
#pls use python3.6
import pyautogui
a = pyautogui.prompt(text='你会哪些编程语言吗', title='编程语言', default='')
print (a) #用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。
######如果不打印,则点击ok按钮后,不会返回输入的文字内容