文章目录
安装
- 安装命令:
pip3 install -i https://pypi.doubanio.com/simple pyautogui
- 项目地址
- 中文文档
常用命令
- 常用命令
# 获取屏幕的宽和高
screenWidth, screenHeight = pyautogui.size()
# 移动鼠标到坐标 x, y 位置
pyautogui.moveTo(x, y)
# 缓慢移动到指定位置,duration:指定时间,tween:指定方式
pyautogui.moveTo(100, 100, duration=2, tween=pyautogui.easeInQuad)
# 开始很快,不断减速
pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)
# 开始和结束都快,中间比较慢
pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)
# 一步一徘徊前进
pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)
# 徘徊幅度更大,甚至超过起点和终点
pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)
# 鼠标向下移动10像素
pyautogui.moveRel(0, 10)
# 鼠标向右移动10像素
pyautogui.moveRel(10, 0)
# 鼠标左键单击
pyautogui.click()
# 鼠标左键双击
pyautogui.doubleClick()
# 按一次指定的键,字符串不分大小写
pyautogui.press('Tab')
# 按下某个键
pyautogui.keyDown('Alt')
# 释放某个键
pyautogui.keyUp('Alt')
# 输入热键(快捷键)
pyautogui.hotkey('Alt', 'Tab')
# 输入文字,interval:输入每个文字之间的时间间隔
pyautogui.write('Hello World!', interval=0.5)
# 按住鼠标左键,把鼠标拖拽到(100, 200)位置
pyautogui.dragTo(100, 200, button='left')
# 按住鼠标左键,用2秒钟把鼠标拖拽到(300, 400)位置
pyautogui.dragTo(300, 400, 2, button='left')
# 按住鼠标左键,用0.2秒钟把鼠标向上拖拽
pyautogui.dragRel(0, -60, duration=0.2)
常用弹窗
# 显示一个简单的带文字、OK和Cancel按钮的消息弹窗,用户点击后返回被点击button的文字,支持自定义数字、文字的列表。
ret = pyautogui.confirm(text='text', title='title', buttons=['OK', 'Cancel']) # OK和Cancel按钮的消息弹窗
print(ret)
# 可以输入的消息弹窗,带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。
ret = pyautogui.prompt(text='text', title='title', default='default')
print(ret)
图片操作
# 获取指定点的RGB值,返回包含R,G,B三个值的元组
pix = pyautogui.pixel(220, 200)
print(pix)
# 对比指定点的RGB值是否为指定的RGB值,tolerance:指定红、绿、蓝3种颜色误差范围
ret = pyautogui.pixelMatchesColor(220, 200, (5, 9, 33), tolerance=10)
print(ret)
# 获得文件图片在现在的屏幕上面的坐标,返回的是一个元组(top, left, width, height)
# 如果截图没找到,pyautogui.locateOnScreen()函数返回None
a = pyautogui.locateOnScreen(r'area.png')
print(a) # 打印结果为Box(left=0, top=0, width=300, height=400)
x, y = pyautogui.center(a) # 获得文件图片在现在的屏幕上面的中心坐标
print(x, y) # 打印结果为150 200
# 直接获取图片的中间位置坐标
x, y = pyautogui.locateCenterOnScreen(r'area.png')
print(x, y) # 打印结果为150 200
# 匹配屏幕所有与目标图片的对象
# 获取到一个迭代器,可以用for循环输出,或者使用list转换为列表
a = list(pyautogui.locateAllOnScreen(r'area.png'))
print(a) # 打印结果为[Box(left=0, top=0, width=300, height=400)]
for pos in pyautogui.locateAllOnScreen(r'area.png'):
print(pos)
# 打印结果为Box(left=0, top=0, width=300, height=400)
防故障功能
- 由于
pyautogui
会控制我们的鼠标,难免会出现想停止却停止不了的困境,所以可以通过设置pyautogui.FAILSAFE = True
来启用自动防故障功能,只要将鼠标移到屏幕左上角的坐标(0,0),程序就会抛出failSafeException异常而停止 - 其他参考