当前位置:首页 > 编程技术 > 正文内容

使用 PyAutoGUI 库在 Python 中自动化 GUI 交互

yc8889个月前 (08-05)编程技术194

使用 PyAutoGUI 库在 Python 中自动化 GUI 交互

PyAutoGUI是一个很棒的模块,用于自动化Python应用程序中的图形用户界面交互。它使开发人员能够模仿用户输入并自动执行重复操作,使其成为测试、数据输入和其他需要与 GUI 交互的工作的理想选择。PyAutoGUI是一个跨平台的库,支持所有主要的操作系统,如Windows,Linux和macOS。

在本教程中,我们将了解如何使用 Python 的 PyAutoGUI 包来自动化 GUI 交互。我们将从安装 PyAutoGUI 开始并学习如何使用它。然后,我们将进一步深入研究库的功能,例如键盘和鼠标控制以及图片识别。我们将在此过程中提供示例,以帮助演示库的功能以及如何使用它来简化和自动化各种任务。

在本教程结束时,读者应该对 PyAutoGUI 以及如何使用它在 Python 应用程序中自动化 GUI 交互有深入的了解。PyAutoGUI 是一个复杂的软件包,无论您是软件开发人员、数据分析师,还是只是寻找优化工作流程的方法,都可以帮助您节省时间并提高工作效率。

现在我们知道了我们将要做什么,让我们开始吧!

开始

在我们深入研究使用 PyAutoGUI 来自动化 GUI 交互之前,我们首先需要使用 pip 安装 PyAutoGUI 模块。

但是,由于它不是内置的,我们必须首先安装 PyAutoGUI 库。这可以使用 pip 包管理器来完成。

要安装 PyAutoGUI 库,请打开终端并键入以下命令 -

pip install scikit-surprise

成功安装软件包后,我们就可以开始工作了!

使用 PyAutoGUI 自动执行 GUI 交互

现在我们已经安装了 PyAutoGUI,让我们探索它的一些功能以及如何使用它们来自动化 GUI 交互。

基本用法

我们需要做的第一件事是将 PyAutoGUI 模块导入我们的 Python 脚本 -

import pyautogui

PyAutoGUI 模块包括用于控制键盘和鼠标以及截屏和识别屏幕上图形的例程。

键盘控制

typewrite() 函数可用于模仿 PyAutoGUI 中的键盘输入。此函数接收字符串并模拟在键盘上键入它。举个例子——

import pyautogui pyautogui.typewrite('Hello, World!')

上面的代码使其看起来像键盘在提供的文本中键入单词。

您还可以使用 hotkey() 函数来模拟一次按下多个键。

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

此代码将模仿同时按“ctrl”和“c”键,这类似于复制文本。

同样,如果要使用 PyAutoGUI 模拟粘贴,可以使用以下脚本轻松完成。

import pyautogui pyautogui.hotkey('ctrl', 'v')

鼠标控制

要使用 PyAutoGUI 模拟鼠标输入,我们可以使用 moveTo()、click() 和 dragTo() 等函数。例如 -

import pyautogui

# Move the mouse to coordinates (100, 100) pyautogui.moveTo(100, 100) # Click the left mouse button pyautogui.click()

此代码会将鼠标移动到屏幕上的坐标(100、100),然后单击鼠标左键。

我们还可以使用 dragTo() 函数来模拟拖动鼠标。例如 -

import pyautogui # Move the mouse to coordinates (100, 100) pyautogui.moveTo(100, 100) # Click and drag the left mouse button to coordinates (200, 200) pyautogui.dragTo(200, 200, button='left')

此代码会将鼠标移动到坐标 (100, 100),单击鼠标左键,然后将鼠标拖动到坐标 (200, 200)。

图像识别

PyAutoGUI还包括用于在屏幕上定位图像的工具。这对于自动化需要用户单击图形用户界面中的特定按钮或图标的操作可能很方便。

locateOnScreen() 函数可用于在屏幕上定位图片。此方法接受文件名作为输入,并返回图像在屏幕上首次出现的左上角的坐标。举个例子——

import pyautogui # Locate the "start_button.png" image on the screen button_location = pyautogui.locateOnScreen('start_button.png') # Click the center of the button button_center = pyautogui.center(button_location) pyautogui.click(button_center)

此代码将在屏幕上找到“start_button.png”图像,然后单击按钮的中心。

完整的程序

这是完整的代码 -

import pyautogui # Simulate typing the text "Hello, World!" pyautogui.typewrite('Hello, World!') # Simulate pressing the "ctrl" and "c" keys at the same time pyautogui.hotkey('ctrl', 'c') # Simulate pressing the "ctrl" and "v" keys at the same time pyautogui.hotkey('ctrl', 'v') # Move the mouse to coordinates (100, 100)  # and click the left mouse button pyautogui.moveTo(100, 100) pyautogui.click() # Move the mouse to coordinates (100, 100)  # Click the left mouse button and drag to coordinates (200, 200) pyautogui.moveTo(100, 100) pyautogui.dragTo(200, 200, button='left') # Locate the "start_button.png" image on the screen  # and click the center of the button button_location = pyautogui.locateOnScreen('start_button.png') button_center = pyautogui.center(button_location) pyautogui.click(button_center)

结论

PyAutoGUI 包是在 Python 应用程序中自动化 GUI 交互的绝佳资源。它简化了模仿用户输入和自动化重复操作的过程,使其成为各种用例(如测试、数据输入和其他需要与图形用户界面交互的工作)的绝佳解决方案。

在本教程中,我们了解了 PyAutoGUI 的特性和功能,例如安装和基本用法、键盘和鼠标控制以及图片识别。开发人员可以通过了解这些功能来利用 PyAutoGUI 的全部潜力来改进他们的工作流程并简化他们的应用程序。

PyAutoGUI的主要优点之一是它的简单性。即使是对 GUI 自动化经验最少的开发人员也可以快速学习如何使用它。此外,其跨平台的灵活性使其成为在各种操作系统上工作的开发人员的绝佳选择。

总体而言,PyAutoGUI提供了广泛的功能,使其成为希望在应用程序中自动化GUI交互的Python开发人员的方便工具包。开发人员可以使用 PyAutoGUI 节省时间、提高工作效率并提高程序的整体质量。我们鼓励读者阅读官方文档,以了解有关 PyAutoGUI 及其功能的更多信息。


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10673.html

标签: Python
分享给朋友:

“使用 PyAutoGUI 库在 Python 中自动化 GUI 交互” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】Java从resources读取文件内容的方法有哪些

【说站】Java从resources读取文件内容的方法有哪些

本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构├── main│ ├── java│ │ └── ...

【说站】linux中redis如何以redis用户重启?

【说站】linux中redis如何以redis用户重启?

通过上图我们可以看到,目前状态是已经以 redis 用户启动着,我想修改下 redis 的密码,然后怎么以 redis 用户重启呢?redis 是 nologin 用户,不能通过 su redis 切...

【说站】使用systemctl配置dnspod-shell实现ddns

【说站】使用systemctl配置dnspod-shell实现ddns

这个是毛子路由器上用的脚本,由于碳云的nat服务器公网IP不断的变,因此只好通过ddns来稳定连接nat服务器了。顺便水一篇文章,大家新年快乐。使用前需要将域名添加到 DNSPod 中,并添加一条A记...