哈喽,大家好!我是风哥,一个资深Python工程师。今天给大家介绍一个超强的GUI自动化库——PyAutoGUI!想要实现自动化操作但是不会写复杂的工具?来试试PyAutoGUI吧,它能让你轻松实现鼠标键盘自动化操作!
1. 基础安装
1pip install pyautogui
2. 鼠标操作基础
1import pyautogui
2
3# 基本安全设置
4pyautogui.FAILSAFE = True # 启用自动防故障功能
5pyautogui.PAUSE = 0.5 # 每个函数间隔0.5秒
6
7# 获取屏幕大小
8screen_width, screen_height = pyautogui.size()
9print(f"屏幕大小: {screen_width} x {screen_height}")
10
11# 获取鼠标位置
12x, y = pyautogui.position()
13print(f"当前鼠标位置: ({x}, {y})")
14
15# 移动鼠标
16pyautogui.moveTo(100, 200) # 移动到指定坐标
17pyautogui.moveTo(100, 200, duration=2) # 2秒内平滑移动
18
19# 相对移动
20pyautogui.moveRel(50, 0) # 向右移动50像素
21pyautogui.moveRel(0, 50, duration=1) # 向下移动50像素
22
23# 鼠标点击
24pyautogui.click() # 当前位置单击
25pyautogui.click(x=100, y=200) # 指定位置单击
26pyautogui.doubleClick() # 双击
27pyautogui.rightClick() # 右键点击
28
29# 鼠标拖拽
30pyautogui.dragTo(300, 400, duration=2) # 拖拽到指定位置
31pyautogui.dragRel(30, 0, duration=1) # 相对拖拽
32
33# 鼠标滚动
34pyautogui.scroll(10) # 向上滚动10个单位
35pyautogui.scroll(-10) # 向下滚动10个单位
3. 键盘操作基础
1# 输入文字
2pyautogui.write('Hello World!') # 输入文本
3pyautogui.write('Hello World!', interval=0.25) # 每个字符间隔0.25秒
4
5# 特殊键
6pyautogui.press('enter') # 按一次回车
7pyautogui.press(['left', 'left', 'left']) # 按三次左箭头
8
9# 组合键
10pyautogui.hotkey('ctrl', 'c') # 复制
11pyautogui.hotkey('ctrl', 'v') # 粘贴
12pyautogui.hotkey('alt', 'tab') # 切换窗口
4. 屏幕操作基础
1# 截图
2screenshot = pyautogui.screenshot()
3screenshot.save('screen.png')
4
5# 局部截图
6region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400))
7region_screenshot.save('region.png')
8
9# 获取坐标处像素颜色
10pixel_color = pyautogui.pixel(100, 200)
11print(f"该位置的RGB颜色: {pixel_color}")
5. 实用小例子
例子1:自动填写表单
1def fill_form():
2 # 等待3秒准备
3 pyautogui.sleep(3)
4
5 # 填写姓名
6 pyautogui.write('张三')
7 pyautogui.press('tab')
8
9 # 填写年龄
10 pyautogui.write('25')
11 pyautogui.press('tab')
12
13 # 填写说明
14 pyautogui.write('这是一个测试')
15
16 # 提交
17 pyautogui.press('enter')
18
19# 运行前提示
20print("请将鼠标放在第一个输入框,3秒后开始...")
21fill_form()
例子2:简单的自动点击器
1def auto_clicker(clicks=10, interval=1.0):
2 print(f"将在3秒后开始点击{clicks}次,间隔{interval}秒")
3 pyautogui.sleep(3)
4
5 for i in range(clicks):
6 pyautogui.click()
7 print(f"完成第{i+1}次点击")
8 pyautogui.sleep(interval)
9
10 print("点击完成!")
11
12# 运行示例
13auto_clicker(5, 2) # 点击5次,每次间隔2秒
6. 进阶技巧
图像识别
1# 需要先安装opencv-python
2# pip install opencv-python
3
4# 在屏幕上查找图片
5button_location = pyautogui.locateOnScreen('button.png')
6if button_location:
7 # 点击图片中心
8 pyautogui.click(pyautogui.center(button_location))
9else:
10 print("未找到目标图片")
11
12# 增加容错率的查找
13button_location = pyautogui.locateOnScreen('button.png', confidence=0.9)
异常处理
1try:
2 # 设置超时查找图片
3 button_location = pyautogui.locateOnScreen('button.png', timeout=10)
4 pyautogui.click(pyautogui.center(button_location))
5except pyautogui.ImageNotFoundException:
6 print("未找到图片")
7except Exception as e:
8 print(f"发生错误: {str(e)}")
实用技巧
调试时使用
pyautogui.sleep()
放慢操作速度使用
pyautogui.PAUSE
设置全局延迟记得启用
FAILSAFE
,移动鼠标到屏幕角落可以终止程序开发时先用
position()
获取坐标对于图像识别,最好使用清晰的截图
注意事项
运行自动化脚本前要仔细检查
建议先小范围测试
保持适当的操作间隔
重要操作加入确认机制
记得做异常处理
练习建议
从简单的鼠标移动开始练习
尝试制作简单的点击器
实现基础的表单填写
进阶到图像识别操作
最后尝试复杂的组合操作
今天的入门教程就到这里,掌握这些基础知识就能实现很多自动化任务了!有问题欢迎在评论区讨论!