pyautogui库的使用及说明

pyautogui 是一个强大的 Python 库,用于自动化控制鼠标和键盘,常用于 GUI 自动化测试、游戏脚本、办公自动化等场景。


​1. 安装 pyautogui​

pip install pyautogui

​注意​:在 Linux 系统上,可能需要额外安装依赖:

sudo apt-get install scrot  # 用于截图(Linux)
sudo apt-get install python3-tk  # 用于 GUI 支持
sudo apt-get install python3-dev  # 用于开发支持

​

图片[1]_pyautogui库的使用及说明_知途无界

2. 基本功能​

​​(1) 鼠标控制​

​① 获取鼠标位置​

import pyautogui

x, y = pyautogui.position()  # 获取当前鼠标坐标
print(f"当前鼠标位置: ({x}, {y})")

​② 移动鼠标​

pyautogui.moveTo(100, 200, duration=1)  # 移动到 (100, 200),耗时 1 秒
pyautogui.moveRel(50, 50, duration=0.5)  # 相对当前位置移动 (50, 50),耗时 0.5 秒

​③ 点击鼠标​

pyautogui.click()  # 当前位置单击左键
pyautogui.click(100, 200)  # 在 (100, 200) 单击左键
pyautogui.doubleClick()  # 双击左键
pyautogui.rightClick()  # 右键单击
pyautogui.middleClick()  # 中键单击
pyautogui.click(button='right')  # 指定按钮点击

​④ 拖动鼠标​

pyautogui.dragTo(300, 400, duration=1)  # 拖动到 (300, 400)
pyautogui.dragRel(100, 100, duration=0.5)  # 相对拖动

​⑤ 滚动鼠标​

pyautogui.scroll(10)  # 向上滚动 10 个单位
pyautogui.scroll(-10)  # 向下滚动 10 个单位

​​(2) 键盘控制​

​① 输入文本​

pyautogui.write("Hello, World!", interval=0.1)  # 输入文本,每个字符间隔 0.1 秒

​② 按键操作​

pyautogui.press('enter')  # 按 Enter 键
pyautogui.press(['ctrl', 'c'])  # 组合键 Ctrl + C
pyautogui.hotkey('ctrl', 'v')  # 快捷键 Ctrl + V(推荐)

​③ 按住和释放按键​

pyautogui.keyDown('shift')  # 按住 Shift
pyautogui.press('4')  # 按 4(会输入 $)
pyautogui.keyUp('shift')  # 释放 Shift

​​(3) 屏幕操作​

​① 截图​

screenshot = pyautogui.screenshot()  # 截取全屏
screenshot.save('screenshot.png')  # 保存截图

# 截取指定区域 (left, top, width, height)
region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400))
region_screenshot.save('region.png')

​② 查找图片(定位 UI 元素)​​

button_location = pyautogui.locateOnScreen('button.png')  # 查找图片位置
if button_location:
    print(f"找到按钮,位置: {button_location}")
    pyautogui.click(button_location)  # 点击找到的按钮
else:
    print("未找到按钮")

​注意​:

  • 图片要完全匹配​(包括颜色、分辨率)。
  • 可以调整 confidence 参数(需要 opencv-python):pyautogui.locateOnScreen('button.png', confidence=0.8) # 匹配相似度 80%

​③ 获取屏幕尺寸​

screen_width, screen_height = pyautogui.size()
print(f"屏幕尺寸: {screen_width} x {screen_height}")

​​(4) 安全措施(防止失控)​​

pyautogui 默认不会自动停止,如果脚本失控,可以:

  1. ​手动停止​:快速移动鼠标到屏幕角落(如 (0, 0) 或 (屏幕宽度, 屏幕高度)),pyautogui 会抛出 pyautogui.FailSafeException 并停止执行。
  2. ​禁用安全措施​(不推荐): pyautogui.FAILSAFE = False # 关闭鼠标失控保护
  3. ​设置暂停时间​(推荐): pyautogui.PAUSE = 0.5 # 每个动作后暂停 0.5 秒

​3. 常见应用场景​

​​(1) 自动化办公​

  • 自动填写表单、发送邮件、批量处理 Excel/Word。
  • 示例:自动输入密码(谨慎使用): pyautogui.write('my_password', interval=0.1) pyautogui.press('enter')

​​(2) 游戏脚本​

  • 自动点击、按键(但可能违反游戏规则)。
  • 示例:自动点击游戏按钮: while True: pyautogui.click(100, 200) # 持续点击 (100, 200)

​​(3) GUI 自动化测试​

  • 模拟用户操作,测试软件功能。

​4. 总结​

功能方法示例
​鼠标移动​moveTo(x, y) / moveRel(dx, dy)pyautogui.moveTo(100, 200)
​鼠标点击​click() / doubleClick() / rightClick()pyautogui.click(100, 200)
​鼠标拖动​dragTo(x, y) / dragRel(dx, dy)pyautogui.dragTo(300, 400)
​鼠标滚动​scroll(amount)pyautogui.scroll(10)
​键盘输入​write(text)pyautogui.write("Hello")
​按键操作​press(key) / hotkey(keys)pyautogui.press('enter')
​截图​screenshot()pyautogui.screenshot().save('img.png')
​查找图片​locateOnScreen('image.png')pyautogui.locateOnScreen('button.png')
​安全措施​FAILSAFE = True / PAUSE = 0.5pyautogui.PAUSE = 0.5

pyautogui 是一个非常实用的自动化工具,但使用时要注意不要用于恶意目的,并确保脚本可控(如设置 PAUSE 和 FAILSAFE)。🚀

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞32 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容