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

pythonserver side programmingprogramming更新于 2024/1/6 8:42:00

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

# 将鼠标移动到坐标 (100, 100)
pyautogui.moveTo(100, 100)

# 单击鼠标左键
pyautogui.click()

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

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

import pyautogui

# 将鼠标移动到坐标 (100, 100)
pyautogui.moveTo(100, 100)

# 单击并拖动鼠标左键到坐标 (200, 200)
pyautogui.dragTo(200, 200, button='left')

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

图像识别

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

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

import pyautogui

# 在屏幕上定位"start_button.png"图像
button_location = pyautogui.locateOnScreen('start_button.png')

# 单击按钮的中心
button_center = pyautogui.center(button_location)
pyautogui.click(button_center)

此代码将在屏幕上定位"start_button.png"图像,然后单击按钮的中心。

完整程序

以下是完整代码 −

import pyautogui

# 模拟输入文本"Hello, World!"
pyautogui.typewrite('Hello, World!')

# 模拟同时按下"ctrl"和"c"键
pyautogui.hotkey('ctrl', 'c')

# 模拟同时按下"ctrl"和"v"键
pyautogui.hotkey('ctrl', 'v')

# 将鼠标移动到坐标 (100, 100)
# 并单击鼠标左键
pyautogui.moveTo(100, 100)
pyautogui.click()

# 将鼠标移动到坐标 (100, 100)
# 单击鼠标左键并拖动到坐标 (200, 200)
pyautogui.moveTo(100, 100)
pyautogui.dragTo(200, 200, button='left')

# 在屏幕上找到"start_button.png"图像
# 并单击按钮的中心
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 及其功能的更多信息。


相关文章