PyAutoGUI,零基础入门GUI自动化!

文摘   2024-11-02 07:05   上海  

哈喽,大家好!我是风哥,一个资深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(100200)  # 移动到指定坐标
17pyautogui.moveTo(100200, duration=2)  # 2秒内平滑移动
18
19# 相对移动
20pyautogui.moveRel(500)  # 向右移动50像素
21pyautogui.moveRel(050, duration=1)  # 向下移动50像素
22
23# 鼠标点击
24pyautogui.click()  # 当前位置单击
25pyautogui.click(x=100, y=200)  # 指定位置单击
26pyautogui.doubleClick()  # 双击
27pyautogui.rightClick()  # 右键点击
28
29# 鼠标拖拽
30pyautogui.dragTo(300400, duration=2)  # 拖拽到指定位置
31pyautogui.dragRel(300, 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=(00300400))
7region_screenshot.save('region.png')
8
9# 获取坐标处像素颜色
10pixel_color = pyautogui.pixel(100200)
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(52)  # 点击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)}")

实用技巧

  1. 调试时使用 pyautogui.sleep() 放慢操作速度

  2. 使用 pyautogui.PAUSE 设置全局延迟

  3. 记得启用 FAILSAFE,移动鼠标到屏幕角落可以终止程序

  4. 开发时先用 position() 获取坐标

  5. 对于图像识别,最好使用清晰的截图

注意事项

  1. 运行自动化脚本前要仔细检查

  2. 建议先小范围测试

  3. 保持适当的操作间隔

  4. 重要操作加入确认机制

  5. 记得做异常处理

练习建议

  1. 从简单的鼠标移动开始练习

  2. 尝试制作简单的点击器

  3. 实现基础的表单填写

  4. 进阶到图像识别操作

  5. 最后尝试复杂的组合操作

今天的入门教程就到这里,掌握这些基础知识就能实现很多自动化任务了!有问题欢迎在评论区讨论!

py学习基地ai
分享生活百态,情感故事,了解不一样的人生
 最新文章