3 分钟上手 GUI 自动化:Pywinauto Recorder 把点击变成可回放的 Python 代码
【免费下载链接】pywinauto_recorderA record-replay tool to automate GUI via pywinauto项目地址: https://gitcode.com/gh_mirrors/py/pywinauto_recorder
你还在用鼠标坐标写 UI 自动化吗?窗口一挪,脚本就废了。
Pywinauto Recorder 是一款面向 Windows 用户的 UI 自动化录制工具。它把你的点击、输入动作录下来,直接转成 Python 脚本,免去手写定位代码的麻烦。
为什么基于坐标的自动化脚本一改布局就废 📌
很多 GUI 自动化脚本开头是这样的:点 (437, 216),再点 (512, 88)。
问题就出在这里。分辨率一变、窗口一拖、主题一换,这些坐标全部作废。
更麻烦的是,定位每个控件还得手动写属性匹配代码,又长又难读。
Pywinauto Recorder 的做法不同:你正常操作一遍界面,它替你记下每个控件是谁、叫什么,再生成对应的 Python 代码。脚本里看不到一堆硬编码坐标。
它依赖 Pywinauto 库的无障碍技术,覆盖面很广,支持这些 GUI 框架:
- MFC
- VB6
- VCL
- WinForms
- WPF
- Store Apps
- Qt
- 浏览器
三行命令装好录音器 ⚡
先确认你的环境装了 Python,3.8 或更高版本即可。
然后按下面三条命令操作,任选前两条之一:
- 克隆仓库,拿到项目源码:
git clone https://gitcode.com/gh_mirrors/py/pywinauto_recorder cd pywinauto_recorder- 或者直接从 PyPI 安装发布包,一步到位:
pip install pywinauto-recorder- 启动录音器。源码方式用
python pywinauto_recorder.py,包安装方式直接执行pywinauto-recorder。
执行后录音器主界面会弹出来,进入信息展示状态,等待你开始录制。
第一次录制实操:点击如何变成 Python 代码 🎬
跟着下面的顺序做,全程不超过一分钟。
- 启动录音器,确认它处于就绪状态,准备开始捕获界面操作。
- 切换到目标程序,比如记事本或任意 Windows 应用,点击菜单栏的「文件」→「打开」。你会看到录音器在后台默默记下这次点击对应的控件。
- 在弹出的对话框里选好文件并确认。文件选择、输入框打字这类动作也会被完整记录。
- 按下 CTRL+SHIFT+F。此时生成的 Python 代码已经复制到剪贴板,粘贴到任意
.py文件里就能回放你刚才的操作。
跑一下生成的脚本,你会看到程序重复执行了"文件→打开→确认"这一串动作。
要这么做,别那么做:让脚本更耐用的技巧 ✅
先说结论:生成的脚本基于无障碍树而非屏幕坐标。无障碍(UIA)就是操作系统提供的接口,程序靠它按控件的名称和层级找到每个按钮、输入框,而不是靠像素位置。所以分辨率变化、布局微调,通常不会导致脚本失效。
日常使用上,记住这组对照建议:
| ✅ 这么做 | ❌ 别这么做 |
|---|---|
| 录制时操作连贯流畅,一次走完完整流程 | 边录边东点西点、中途长时间停顿 |
| 生成后通读代码,用 Pywinauto 的方法补充断言和错误处理 | 拿到代码直接照搬,不看内容 |
| 把脚本交给同事前先自己回放验证一遍 | 在换过分辨率的新机器上不做测试就直接交付 |
配合 pytest 与 CI/CD 使用 🚀
项目采用 MIT 许可,商用项目里放心使用。
生成的脚本返回 Pywinauto 的控件包装对象,可以直接用 Pywinauto 的方法做断言和二次控制。
把回放逻辑包进函数,配合 pytest 或 unittest 就是现成的 GUI 测试套件,挂到 CI/CD 流水线上做回归也合适。
写在最后
打开录音器,点一次「文件→打开」,按 CTRL+SHIFT+F,你就拿到了第一段可靠的 GUI 自动化代码。
想深入了解配置项和高级用法,去翻项目里的 docs/ 目录和官方文档页面。
【免费下载链接】pywinauto_recorderA record-replay tool to automate GUI via pywinauto项目地址: https://gitcode.com/gh_mirrors/py/pywinauto_recorder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考