Python + PyAutoGUI: 轻松实现用户界面自动化

概述

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

PyAutoGUI 是什么

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

PyAutoGUI 是跨平台的,这意味着它可以在 Windows、macOS 和 Linux 上运行。 它具有简单直观的API(应用程序编程接口)。 您可以通过在终端中运行以下命令,使用 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 控制鼠标移动到文本框,并模拟输入文本信息,然后控制鼠标移动到“关闭”按钮,并模拟点击“关闭”按钮的自动化流程。

以上就是“Python + PyAutoGUI: 轻松实现用户界面自动化”的全部内容,希望对你有所帮助。
?
?关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。