PyAutoGUI自动完成重复性任务

PyAutoGUI是一个强大的Python库,支持以编程方式控制鼠标和键盘。使用PyAutoGUI可以自动执行重复性任务,创建自定义快捷方式,甚至开发简单的RPA(Robotic Process Automation 机器人流程自动化)。本文我们将探讨PyAutoGUI的各种特性,包括如何安装库、如何与鼠标和键盘交互,以及如何使用屏幕截图来控制应用程序。在这里插入图片描述

安装PyAutoGUI

在开始使用PyAutoGUI之前,我们需要安装它。您可以使用pip安装库,执行以下命令:

pip install pyautogui

安装完成,在python脚本中导入库:

import pyautogui

控制鼠标

PyAutoGUI提供了几个控制鼠标的函数,例如移动光标、单击、滚动和拖动。

移动光标

要将光标移动到屏幕上的特定位置,使用moveTo()函数:

pyautogui.moveTo(x, y, duration=seconds)

举例, 在两秒内移动光标至(100, 200) :

pyautogui.moveTo(100, 200, duration=2)

鼠标点击

使用click函数模拟鼠标点击:

pyautogui.click(x, y, button='left')

举例,使用鼠标右键在(100, 200)位置处点击:

pyautogui.click(100, 200, button='right')

滚动

使用scroll函数模拟鼠标滚动:

pyautogui.scroll(units, x=None, y=None)

举例,向上、向下滚动200个单位:

# 向上
pyautogui.scroll(200)

# 向下
pyautogui.scroll(-200)

控制键盘

PyAutoGUI支持发送击键、键入字符串和执行键盘快捷键。

按键

使用press()函数模拟单个按键:

pyautogui.press('key')

举例, 按回车键:

pyautogui.press('enter')

输入字符串

使用 typewrite()函数模拟打字:

pyautogui.typewrite('text', interval=seconds)

举例,键入字符串‘ hello world ’,每个字符之间的延迟为0.1秒:

pyautogui.typewrite('hello world', interval=0.1)

执行快捷键

要执行键盘快捷键,使用hotkey()函数:

pyautogui.hotkey('key1', 'key2', ...)

举例,执行ctrl+c快捷键:

pyautogui.hotkey('ctrl', 'c')

屏幕信息和图像识别

PyAutoGUI可以获取屏幕信息,如屏幕大小和像素颜色,并执行图像识别。

屏幕大小

使用size()函数获取屏幕大小:

width, height = pyautogui.size()

像素颜色

使用pixel()函数获取像素的颜色:

color = pyautogui.pixel(x, y)

图像识别

使用locateOnScreen在屏幕中定位给定图像:

location = pyautogui.locateOnScreen('image.png', confidence=0.9)

confidence参数指定所需的匹配精度(0到1)。

图像捕获举例

在这个场景中,通过使用pyautogui.locateOnScreen函数来查找图形编辑软件中的特定图标(如保存图标)。如果找到了该图标,就可以模拟点击操作来执行保存文件的功能。

这种技术可以应用于各种自动化测试场景,例如测试软件的特定功能是否正常工作,或者在重复的任务中自动执行一系列操作以提高效率。

import pyautogui

# 假设这是图形编辑软件中某个特定图标,用于保存文件
save_icon_filename = 'save_icon.png'

# 在屏幕上查找保存图标
location = pyautogui.locateOnScreen(save_icon_filename, confidence=0.9)

if location:
    # 如果找到了保存图标,可以模拟点击该图标进行保存操作
    save_icon_center = pyautogui.center(location)
    pyautogui.click(save_icon_center)
    print("找到并点击了保存图标。")
else:
    print("未找到保存图标。")

综合实战示例

让我们创建一个简单的脚本,打开“记事本”应用程序,输入一些文本,并保存文件:

import pyautogui
import time

## Open Notepad
pyautogui.hotkey('win', 'r')
time.sleep(0.5)
pyautogui.typewrite('notepad', interval=0.1)
pyautogui.press('enter')
time.sleep(2)

## Type some text
pyautogui.typewrite('Hello, PyAutoGUI!\n', interval=0.1)
time.sleep(1)

## Save the file
pyautogui.hotkey('ctrl', 's')
time.sleep(1)

## Type the file name and save
pyautogui.typewrite('example.txt', interval=0.1)
pyautogui.press('enter')
time.sleep(1)

## Close Notepad
pyautogui.hotkey('alt', 'f4')

这个脚本演示了如何使用PyAutoGUI组合鼠标和键盘交互来自动执行简单的任务。通过不断实践和创新,你可以利用PyAutoGUI自动执行更复杂的任务,并在日常工作流程中节省时间。更多信息可以参考官方文档

上一篇:Linux网络编程


下一篇:BUG: scheduling while atomic