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 是一个非常实用的自动化工具,但使用时要注意不要用于恶意目的,并确保脚本可控(如设置 PAUSEFAILSAFE)。🚀

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

昵称

取消
昵称表情代码图片

    暂无评论内容