在今天的文章中,我们将探讨如何使用 Python 进行 Windows GUI 自动化。GUI 自动化可以帮助我们自动执行许多与操作系统交互的任务,比如移动鼠标、点击按钮、输入文本、移动窗口等。Python 提供了两个强大的库:pyautogui 和 pywinauto,使得 GUI 自动化变得简单。接下来我们详细介绍。
pyautogui
pyautogui
是一个纯 Python 的 GUI 自动化库,它可以模拟键盘输入、鼠标点击和移动、在屏幕上查找图像等操作。它对 Windows、macOS、和 Linux 都有良好的支持,可以帮助我们编写跨平台的自动化脚本。
pyautogui
的使用场景
pyautogui
的使用场景非常广泛。以下是一些常见的例子:
-
** 测试 **:自动化脚本可以帮助我们自动执行一些复杂的测试用例,比如 UI 测试、功能测试等。
-
** 数据录入 **:如果我们需要在多个表单或应用程序中输入相同的数据,自动化脚本可以帮助我们节省大量的时间和精力。
-
** 批量操作 **:如果我们需要对大量的文件或数据进行相同的操作,自动化脚本也可以派上用场。
如何安装 pyautogui
?
在开始使用 pyautogui
之前,我们需要先在我们的 Python 环境中安装它。在命令行中输入以下命令即可:
pip install pyautogui
用 pyautogui
打开记事本,输入文本保存
接下来,我们通过一个简单的例子来展示如何使用 pyautogui
。在这个例子中,我们将使用 pyautogui
来自动打开一个记事本,输入一些文字,然后保存并关闭它。
首先,我们导入 pyautogui
库,并设置失败安全特性,当我们将鼠标移动到屏幕的左上角时,自动化会立即停止:
import pyautogui
pyautogui.FAILSAFE = True
然后,我们使用 pyautogui
的 hotkey
函数来模拟按下 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 还有更多的功能等待您去探索,包括处理复杂的窗口结构、模拟鼠标操作等。
除上述资料外,还附赠全套Python学习资料,包含面试题、简历资料等具体看下方。
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python学习路线
二、Python基础学习
1. 开发工具
2. 学习笔记
3. 学习视频
三、Python小白必备手册
四、数据分析全套资源
五、Python面试集锦
1. 面试资料
2. 简历模板
![](https://i-blog.csdnimg.cn/blog_migrate/4c09a7142a58e6e4236a58226bef7f13.png)
因篇幅有限,仅展示部分资料,添加上方即可获取**