pyautogui 的安装
pip install pyautogui # windows 下直接安装(pycharm中)
pyautogui 初识
import pyautogui as pg
# 输出屏幕大小
print(pg.size())
print(pg.size().width) # 宽
print(pg.size().height) # 高
# 输出当前鼠标所在位置
print(pg.position())
print(pg.position().x) # x 坐标
print(pg.position().y) # y 坐标
# pyautogui 的坐标原点在左上角,左上角为 0,0 往右往下递增
# 1920 x 1080 分辨率的屏幕,左上、左下、右下、右上 分别是:
# Point(x=0, y=0)、Point(x=0, y=1079)、Point(x=1919, y=1079)、Point(x=1919, y=0)
# 检测坐标是否在屏幕上
print(pg.onScreen(0, 0)) # True
print(pg.onScreen(0, -1)) # False
print(pg.onScreen(1920, 1080)) # False 坐标原点是 (0,0),所以 (1920,1080) 不在屏幕上
print(pg.onScreen(1919, 1079)) # True 这是右下角坐标
pyautogui 的鼠标相关操作
import pyautogui as pg
# 当鼠标从左上角移动到别的地方时,会触发安全错误 FailSafeException,需要设置 pyautogui.FAILSAFE 为 False,但不建议这么做
pg.FAILSAFE = False # 设置 pyautogui.FAILSAFE 为 False 后,就不会报错了
# 鼠标移动到指定位置
pg.moveTo(1, 1) # 鼠标移动至桌面 (1,1) 处,官网说可以用 None 代替 x 或 y,但实测不行,python3.9
pg.moveTo(500, 500, 2) # 鼠标用 2 秒时间移动至 (1919,1079) 处
# 鼠标相对当前位置移动
pg.move(50, 50) # 相对当前位置移动,x + 50,y + 50 (往右,往下)
pg.move(-50, -50, 2) # 用 2 秒时间,相对当前位置移动,x - 50,y - 50 (往左,往上),同样不能使用 None 代替 x 或 y
# 拖动鼠标,使用 button 指定鼠标左键、右键 以及 中键,默认为 左键
pg.dragTo(50, 50) # 按住鼠标左键,拖动至坐标点 (50,50),注意,是从当前就按下,接着拖动到 (50,50)
pg.dragTo(100, 100, 2, button='right') # 右键,使用 2 秒去拖动
pg.dragTo(200, 200, button='middle') # 中键
# 相对位置拖动鼠标
pg.drag(100, 100, button='left') # 往右往下 分别拖动 100 的距离
# 鼠标点击
pg.click() # 默认左击
pg.click(button='right') # 鼠标右击
pg.click(clicks=2) # 鼠标双击
pg.click(clicks=2, interval=0.25) # 鼠标左键双击,间隔 0.25 秒
pg.click(button='right', clicks=2, interval=0.25) # 鼠标右键双击,间隔 0.25 秒
# 按下、抬起鼠标
pg.mouseDown() # 按下鼠标(默认左键)
pg.mouseUp() # 提起鼠标(左键)
pg.mouseDown(button='right') # 右键按下鼠标
pg.mouseUp(button='right', x=500, y=500) # 鼠标右键抬起后,移动至 (500,500) (官网意思是先移动至目标位置,再抬起鼠标,实际演示效果并不是这样)
# 滚动滚轮
pg.scroll(1000) # 滚轮向下滚动 1000 的距离
pg.scroll(-1000) # 轮流向上滚动 1000 的距离
注:本文参考自 https://pyautogui.readthedocs.io/en/latest/index.html#