Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化

文摘   2024-12-30 00:01   湖南  

Pywinauto Recorder是一个强大的UI自动化工具,它能够记录用户在Windows应用程序上的操作,并将其转换为可执行的Python脚本。这意味着你可以轻松地将重复性的GUI操作自动化,提高效率并降低人为错误。

什么是Pywinauto Recorder?

Pywinauto Recorder的核心是Pywinauto库。不同于依赖图像识别或硬编码坐标的传统UI自动化工具,Pywinauto Recorder利用Windows的辅助功能(Accessibility technologies),能够可靠地识别和操作各种GUI元素,包括MFC、VB6、VCL、WinForms、WPF、Store apps、Qt以及大多数浏览器。它生成的Python脚本并非依赖于元素的屏幕坐标,而是通过元素的属性进行识别,因此更稳定,更易于维护。生成的脚本可以直接运行,也可以作为基础,进一步扩展和修改。

Pywinauto Recorder 的主要功能:

  • • 录制用户操作: 录制用户在Windows应用程序上的各种操作,例如点击按钮、输入文本、选择菜单项等。

  • • 生成Python脚本: 将录制的操作转换为清晰易懂的Python代码,并利用Pywinauto库进行操作。

  • • 元素识别: 通过辅助功能识别GUI元素,而非依赖于屏幕坐标,提高脚本的稳定性和可维护性。

  • • 脚本回放: 直接运行生成的Python脚本,重现录制的操作。

  • • 脚本增强: 生成的脚本返回Pywinauto包装器,方便用户进一步使用Pywinauto的丰富功能进行扩展和修改。

如何使用Pywinauto Recorder?

  1. 1. 启动录制器: 双击 pywinauto_recorder.exe_ 或运行 python.exe pywinauto_recorder.py 启动录制器。启动后,会在系统托盘中显示一个图标。

  2. 2. 切换到录制模式: 按下 Ctrl + Alt + r 切换到录制模式。此时,鼠标指针移动到可识别的GUI元素上方时,该元素会高亮显示为绿色或橙色。

  3. 3. 录制操作: 在录制模式下,执行你想要自动化的操作,例如点击按钮、输入文本等。Pywinauto Recorder会将这些操作记录到脚本中。

  4. 4. 停止录制: 完成录制后,再次按下 Ctrl + Alt + r 停止录制。生成的Python脚本将保存在 Pywinauto recorder 文件夹(位于用户主目录下),同时也会复制到剪贴板。

  5. 5. 元素信息复制: 按下 Ctrl + Shift + f 可以将当前高亮显示的GUI元素信息复制到剪贴板,方便调试和脚本编写。

  6. 6. 脚本回放: 你可以直接运行生成的Python脚本,或者将脚本拖放到 pywinauto_recorder.exe_ 来回放。

  7. 7. 退出录制器: 在系统托盘菜单中点击“Quit”退出录制器。

示例:自动化记事本操作

假设我们想自动化一个简单的记事本操作:打开记事本,输入文本“Hello, world!”,然后保存文件。使用Pywinauto Recorder,我们可以录制这些操作,并生成相应的Python脚本。录制完成后,生成的Python脚本可能类似如下(实际代码可能略有不同,取决于记事本的窗口标题和元素属性):

# 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库,通过访问记事本窗口的元素(例如 Edit 用于编辑文本区域),来执行操作。你可以根据需要修改和扩展这个脚本。

总结

Pywinauto Recorder 是一款优秀的UI自动化工具,它结合了 Pywinauto 库的强大功能和简单的录制回放机制,能够极大提高UI自动化测试和日常办公效率。其基于辅助功能的元素识别方式保证了脚本的稳定性和可维护性。对于需要进行大量重复性GUI操作的用户来说,Pywinauto Recorder 是一个值得尝试的工具。

项目地址:https://github.com/beuaaa/pywinauto_recorder


小白这样学Python
专注Python编程开发知识分享!
 最新文章