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库的使用及说明_知途无界](https://zhituwujie.com/wp-content/uploads/2025/09/d2b5ca33bd20250925102900.png)
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 默认不会自动停止,如果脚本失控,可以:
- 手动停止:快速移动鼠标到屏幕角落(如
(0, 0)或(屏幕宽度, 屏幕高度)),pyautogui会抛出pyautogui.FailSafeException并停止执行。 - 禁用安全措施(不推荐):
pyautogui.FAILSAFE = False # 关闭鼠标失控保护 - 设置暂停时间(推荐):
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.5 | pyautogui.PAUSE = 0.5 |
pyautogui 是一个非常实用的自动化工具,但使用时要注意不要用于恶意目的,并确保脚本可控(如设置 PAUSE 和 FAILSAFE)。🚀
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
























暂无评论内容