Pywinauto Recorder 是一个功能强大的桌面端 UI 自动化工具。它能够录制并识别用户在 Windows 应用程序上的操作,并将这些操作转换成可直接执行的 Python 脚本。这为自动化重复性的图形界面操作提供了极大的便利,有助于显著提升工作效率并减少人为失误。
Pywinauto Recorder 是什么?
该工具的核心基于 Pywinauto 库。与那些依赖图像识别或屏幕坐标的传统自动化工具不同,Pywinauto Recorder 利用了 Windows 底层的辅助功能技术来定位和操控 GUI 元素。这种方式使其能够稳定地支持多种技术栈开发的界面,包括但不限于 WinForms、WPF、Qt、MFC 以及大多数浏览器应用。
它生成的脚本是通过识别元素的各类属性(如控件类型、名称、自动化ID等)来定位目标,而非脆弱的屏幕坐标。因此,脚本的稳定性和可维护性得到了大幅提升。生成的代码不仅可以直接运行,也可以作为基础模板,供开发者进行更复杂的定制和扩展。
Pywinauto Recorder 的主要功能包括:
- 录制用户操作:精准记录点击、输入、菜单选择等交互行为。
- 生成 Python 脚本:将录制序列转换为清晰、结构化的 Pywinauto 代码。
- 精准元素识别:基于辅助功能接口,确保脚本在不同分辨率或界面微调后依然可靠。
- 一键脚本回放:直接执行生成的脚本,复现录制的完整操作流程。
- 脚本深度扩展:生成的脚本返回 Pywinauto 的控件包装器对象,便于直接调用库的丰富 API 进行二次开发。
如何使用 Pywinauto Recorder?
使用该工具实现自动化的流程非常直观:
- 启动录制器:运行
pywinauto_recorder.exe 或执行 python.exe pywinauto_recorder.py。启动后,系统托盘会出现相应图标。
- 进入录制模式:按下快捷键
Ctrl + Alt + R,切换至录制模式。此时,将鼠标移至可识别的 GUI 元素上时,元素会被高亮(绿色或橙色边框)显示。
- 执行录制操作:在目标应用程序上,像正常操作一样点击按钮、输入文本、选择菜单等,所有操作都会被实时记录。
- 停止录制:再次按下
Ctrl + Alt + R 停止录制。生成的 Python 脚本会自动保存到用户主目录下的 Pywinauto recorder 文件夹中,同时也会被复制到系统剪贴板。
- 复制元素信息(调试):在录制模式下,将鼠标悬停在元素上并按
Ctrl + Shift + F,可将该元素的详细识别信息复制到剪贴板,方便编写或调试脚本。
- 回放脚本:可以直接运行生成的
.py 文件,或者将其拖拽到 pywinauto_recorder.exe 上执行回放。
- 退出程序:通过系统托盘图标菜单选择“Quit”即可退出。
实战示例:自动化记事本操作
假设我们需要自动化一个经典操作:打开记事本,输入一段文本并保存。使用 Pywinauto Recorder 录制此过程后,可能会生成如下所示的脚本(具体代码可能因系统语言和窗口标题而异):
# Generated by Pywinauto Recorder
from pywinauto.application import Application
app = Application(backend="uia").start("notepad.exe")
app.UntitledNotepad.Edit.type_keys("Hello, world!")
app.UntitledNotepad.menu_select("File->Save As")
# ... (后续可能包含与“另存为”对话框交互的代码) ...
这段脚本清晰地展示了 Pywinauto 的工作逻辑:首先启动应用程序并连接到其窗口,然后通过控件层级(如 app.UntitledNotepad.Edit)定位到文本编辑区域并输入内容,最后操作菜单。你可以基于这个生成的基础脚本,添加更复杂的逻辑,例如处理文件保存路径、验证结果等,这使其成为 软件测试 或日常办公自动化的强大起点。
总结
Pywinauto Recorder 巧妙地将易用的录制回放功能与 Pywinauto 库强大的编程控制能力结合在一起,为 Windows 平台下的 GUI 自动化提供了一个高效、稳定的解决方案。其基于辅助技术的元素识别机制,从根本上避免了因界面位置变动导致的脚本失效问题,极大地提升了自动化脚本的健壮性。对于需要应对大量重复性界面操作任务的开发者和测试人员而言,这无疑是一个极具价值的工具。如果你对自动化技术或相关工具实践感兴趣,欢迎在 云栈社区 与我们交流探讨。
项目地址:https://github.com/beuaaa/pywinauto_recorder
|