pyautogui 的初识与鼠标操作

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#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值