使用 Python 进行 Windows GUI 自动化

在今天的文章中,我们将探讨如何使用 Python 进行 Windows GUI 自动化。GUI 自动化可以帮助我们自动执行许多与操作系统交互的任务,比如移动鼠标、点击按钮、输入文本、移动窗口等。Python 提供了两个强大的库:pyautogui 和 pywinauto,使得 GUI 自动化变得简单。接下来我们详细介绍。

pyautogui

pyautogui 是一个纯 Python 的 GUI 自动化库,它可以模拟键盘输入、鼠标点击和移动、在屏幕上查找图像等操作。它对 Windows、macOS、和 Linux 都有良好的支持,可以帮助我们编写跨平台的自动化脚本。

pyautogui 的使用场景

pyautogui 的使用场景非常广泛。以下是一些常见的例子:

  1. ** 测试 **:自动化脚本可以帮助我们自动执行一些复杂的测试用例,比如 UI 测试、功能测试等。

  2. ** 数据录入 **:如果我们需要在多个表单或应用程序中输入相同的数据,自动化脚本可以帮助我们节省大量的时间和精力。

  3. ** 批量操作 **:如果我们需要对大量的文件或数据进行相同的操作,自动化脚本也可以派上用场。

如何安装 pyautogui

在开始使用 pyautogui 之前,我们需要先在我们的 Python 环境中安装它。在命令行中输入以下命令即可:

pip install pyautogui  

pyautogui 打开记事本,输入文本保存

接下来,我们通过一个简单的例子来展示如何使用 pyautogui。在这个例子中,我们将使用 pyautogui 来自动打开一个记事本,输入一些文字,然后保存并关闭它。

首先,我们导入 pyautogui 库,并设置失败安全特性,当我们将鼠标移动到屏幕的左上角时,自动化会立即停止:

import pyautogui  
  
pyautogui.FAILSAFE = True  

然后,我们使用 pyautoguihotkey 函数来模拟按下 Win+R 组合键,打开运行对话框:

pyautogui.hotkey('win', 'r')  

接着,我们使用 typewrite 函数来输入 “notepad”,并按下回车键:

pyautogui.typewrite('notepad', interval=0.25)  
pyautogui.press('enter')  

然后,我们等待一下,让记事本完全打开,然后再输入一些文字:

import time  
  
time.sleep(2)  # wait for Notepad to open  
pyautogui.typewrite('Hello, world!', interval=0.25)  

typewrite 函数可以模拟键盘输入,interval 参数可以设置每个字符之间的间隔,以模拟人类的打字速度。

接下来,我们用 hotkey 函数来模拟按下 Ctrl+S 组合键,保存这个文件:

pyautogui.hotkey('ctrl', 's')  # press the Save hotkey combination  
time.sleep(1)  # wait for the Save dialog to appear  

然后我们输入文件名,并按下回车键保存文件:

pyautogui.typewrite('hello_world.txt', interval=0.25)  
pyautogui.press('enter')  # press the Enter key  

最后,我们用 hotkey 函数来模拟按下 Alt+F4 组合键,关闭记事本:

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

以上就是用 pyautogui 编写的一个简单的自动化脚本。通过这个脚本,我们可以看到,pyautogui 提供了一套非常直观和易用的接口,让我们可以轻松地编写出复杂的自动化脚本。

pywinauto

pywinauto 的主要用途是自动化 Windows GUI 应用程序的测试和自动化。

pywinauto 的使用场景

  • 回归测试:定期运行相同的测试,确保软件在进行更改或更新后仍然可以正常工作。

  • 质量保证:确保软件的新版本或功能与预期的用户体验一致。

  • 持续集成 / 持续部署 (CI/CD) 流程:在自动化的构建和部署过程中,进行软件测试。

  • 任务自动化:自动执行一些重复性的 GUI 操作,如文件管理,软件安装等。

用 pywinauto 来自动化 Windows 计算器

下面是一个简单的 pywinauto 教程,我们将演示如何用 pywinauto 来自动化 Windows 计算器的操作。

首先,你需要确保你的环境已经安装了 Python 和 pywinauto。你可以使用 pip 来安装 pywinauto:

pip install pywinauto  

然后,我们可以编写一个简单的脚本来启动计算器应用并执行一些操作:

from pywinauto.application import Application  
  
# 启动 Windows 计算器  
app = Application().start("calc.exe")  
  
# 选择计算器窗口  
dlg = app.window(title=' 计算器 ')  
  
# 在计算器中输入 2+2  
dlg.type_keys('2+2=')  
  
# 打印结果  
print(" 结果是:", dlg.Static2.window_text())  

这段代码首先启动了 Windows 计算器,然后在计算器中执行了 2+2 的操作,并打印出结果。

** 请注意:这个示例假设你的计算器应用具有类似于 Windows 10 计算器的布局。不同的 Windows 版本可能需要适当调整代码。**

用 pywinauto 来自动化 Windows 记事本

导入模块

在 Python 脚本中,我们需要导入 pywinauto 库。同时,我们还会导入 time 库,因为在执行某些操作时,我们可能需要暂停一下。

from pywinauto.application import Application  
import time  

启动应用程序

使用 pywinauto 的 Application 对象,我们可以启动和控制应用程序。例如,如果我们要打开记事本,我们可以这样做:

app = Application().start("notepad.exe")  

操作窗口

在打开应用程序后,我们通常需要与其窗口进行交互。我们可以使用 app 对象的 window_ 方法来获取窗口。然后,我们可以调用窗口的方法来执行各种操作,如点击按钮或输入文本。

例如,我们可以在记事本中输入一些文本:

app.Notepad.Edit.type_keys("Hello, World!", with_spaces = True)  

type_keys 方法会模拟键盘按键。with_spaces = True 参数表示我们希望在每次按键之间添加短暂的延迟,以模拟人类的打字速度。

保存和关闭

最后,我们可以模拟点击菜单选项来保存我们的文件,然后关闭记事本:

app.Notepad.menu_select("File -> Save As")  
app.SaveAs.Edit.set_edit_text("example.txt")  
app.SaveAs.Save.click()  
time.sleep(1)  
app.Notepad.menu_select("File -> Exit")  

在这个例子中,menu_select 方法用于模拟点击菜单选项,set_edit_text 方法用于在文本框中输入文本,click 方法用于点击按钮。

** 请注意:这个示例假设你的记事本的菜单是英文,如果是中文,则需要调整代码为中文。**

以上就是一个基本的例子,展示了如何使用 Python 和 pywinauto 进行 Windows GUI 自动化。当然,pywinauto 还有更多的功能等待您去探索,包括处理复杂的窗口结构、模拟鼠标操作等。

– END –

除上述资料外,还附赠全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

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

一、Python学习路线

image-20230619144606466

python学习路线图1

二、Python基础学习
1. 开发工具

2. 学习笔记

3. 学习视频

三、Python小白必备手册

图片

四、数据分析全套资源

五、Python面试集锦
1. 面试资料

2. 简历模板

因篇幅有限,仅展示部分资料,添加上方即可获取

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年10月18日
下一篇 2023年10月18日

相关推荐

此站出售,如需请站内私信或者邮箱!