目录

一、概述

您是否曾经想过在计算机上自动执行某些任务,例如截屏、填写表单、单击按钮等等? 如果您是 Python 用户,您可能会对 PyAutoGUI 感兴趣,这是一个允许您使用代码控制鼠标和键盘的库。 本文将介绍 PyAutoGUI 是什么、它为什么有用以及如何将它用于各种目的。

二、PyAutoGUI 是什么

PyAutoGUI 是一个 Python 库,使您能够通过控制鼠标和键盘来自动执行 GUI(图形用户界面)任务。 它可以模拟用户操作,例如移动光标、单击按钮、键入文本、按键、捕获屏幕截图等。它还可以识别和定位屏幕上的图像,这对于测试或与 GUI 应用程序交互非常有用。

PyAutoGUI 是跨平台的,这意味着它可以在 Windows、macOS 和 Linux 上运行。 它具有简单直观的API(应用程序编程接口)。

PyAutoGUI 的源码地址:https://github.com/asweigart/pyautogui

PyAutoGUI 官方文档:https://pyautogui.readthedocs.io/

您可以通过在终端中运行以下命令,使用 Python 包管理器 pip 安装 PyAutoGUI:

pip install pyautogui

或者从国内清华源安装(速度快):

pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple

三、使用 PyAutoGUI 执行常见任务

要使用 PyAutoGUI,您需要将其导入 Python 脚本或解释器中。 您还可以使用__version__属性检查其版本:

import pyautogui
print(pyautogui.__version__)

输出:

0.9.54

您可能想要使用 PyAutoGUI 做的第一件事就是获取屏幕的大小和分辨率。 这可以帮助您确定鼠标移动和单击的坐标和边界。 您可以使用 size() 函数获取屏幕宽度和高度的元组(以像素为单位):

sizex, sizey = pyautogui.size()
print(sizex, sizey)

输出 (下面的数字是我屏幕的大小):

1920 1080

要将鼠标光标移动到屏幕上的特定位置,可以使用 moveTo() 函数,该函数将 x 和 y 坐标作为参数。 例如,要将光标移动到屏幕中央,可以使用以下代码:

pyautogui.moveTo(sizex/2, sizey/2)

要在当前位置单击鼠标按钮,可以使用 click() 函数,该函数将按钮参数设置为“左”、“中”或“右”。 您还可以指定单击次数以及单击之间的间隔。 例如,要双击左键,可以使用以下代码:

pyautogui.click(button='left', clicks=2, interval=0.5)

要在当前位置键入文本,可以使用 write() 函数,该函数将文本参数作为字符串。 您还可以指定每个字符之间的间隔。 例如,输入“Hello, world!” 以 0.1 秒的间隔,您可以使用以下代码:

pyautogui.write('Hello, world!', interval=0.1)

要按下单个键或组合键,您可以使用 press() 函数,该函数将键参数作为字符串或字符串列表。 您还可以使用 keyDown()keyUp() 函数来按住和释放按键。 例如,要按“Enter”键,您可以使用以下代码:

pyautogui.press('enter')

要捕获屏幕或屏幕某个区域的屏幕截图,您可以使用 screenshot() 函数,该函数返回一个 PIL(Python 图像库)图像对象。 您还可以使用 save() 方法将图像保存到文件中。 例如,要捕获屏幕左上角的屏幕截图并将其保存为“screenshot.png”,您可以使用以下代码:

region = (0, 0, int(sizex/2), int(sizey/2))
image = pyautogui.screenshot(region=region)
image.save('screenshot.png')

四、高级功能

PyAutoGUI 还具有一些高级功能和技术,可以使您的自动化任务更加强大和灵活。 这里是其中的一些:

1) 您可以通过 hotkey() 函数使用热键和键盘快捷键,该函数将可变数量的键参数作为字符串。 例如,要将选定的文本复制到剪贴板,可以使用以下代码:

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

2) 您可以使用 locateOnScreen() 函数在屏幕上定位和识别图像,该函数将图像参数作为文件名或 PIL 图像对象。 它返回找到图像的区域的坐标和大小的元组,如果未找到图像,则返回 None 。 例如,要在屏幕上找到图像“button.png”并单击它,可以使用以下代码:

region = pyautogui.locateOnScreen('button.png')
if region is not None:
    centerx, centery = pyautogui.center(region)
    pyautogui.click(centerx, centery)

3) 您可以截取全屏屏幕截图并使用 PIL Image 对象的 crop() 方法对其进行裁剪。 例如,要裁剪屏幕的右下四分之一并将其另存为“cropped.png”,您可以使用以下代码:

image = pyautogui.screenshot()
cropped = image.crop((sizex/2, sizey/2, sizex, sizey))
cropped.save('cropped.png')

五、示例

下面的示例演示了用 PyAutoGUI 控制鼠标移动到文本框,并模拟输入文本信息,然后控制鼠标移动到“关闭”按钮,并模拟点击“关闭”按钮的自动化流程。

六、结论

本文介绍了 PyAutoGUI 是什么、它为什么有用以及如何将它用于各种目的。PyAutoGUI 对于测试或与 GUI 应用程序交互非常有用,​您可以试着发掘更多有趣的应用。


相关博客文章

相关书籍教程文章
官方公众号

💯本站文章同步发表在官方公众号 ReadingHere,关注公众号您将在第一时间了解本站最新文章和资讯。

❤️欢迎您关注本站官方公众号 ReadingHere


版权声明

本文由ReadingHere原创,未经ReadingHere授权不得转载、摘编。已经授权使用的,应在授权范围内使用,并注明来源: www.readinghere.com。违反上述声明者,ReadingHere将追究其相关法律责任。


交流合作

如需交流咨询或商务合作请扫描下图微信二维码联系。