
双后端Win32/UIA双通道,自然属性式语法操控桌面控件,2006年至今仍在维护,测试/RPA/批处理通吃,6.2k Stars
pywinauto 是 Windows GUI 自动化领域最老牌的 Python 库——用 Python 脚本操控 Windows 桌面程序的窗口、对话框和控件,从简单的键鼠模拟到读取控件文本数据都支持。2006 年诞生,至今仍在维护。
核心特点
- 双后端架构:
win32(Win32 API,默认)和uia(MS UI Automation),后者支持 WPF/现代应用和跨进程操作 - 语法可读性极强:
app.Notepad.Edit.type_keys("...")这种自然属性式写法,脚本像自然语言 - 完整控件操作:点击、右键、菜单选择、输入文本、读取数据、控件截图(
capture_as_image) - 控件树检查:
print_control_identifiers()打印完整控件层级,配合 Spy/Inspect 工具定位元素 - 跨平台键鼠模块:
mouse和keyboard模块在 Windows 和 Linux 都能用 - Desktop 对象:不依赖进程 ID 操作跨进程弹窗
快速上手
pip install -U pywinauto
from pywinauto.application import Application
app = Application().start("notepad.exe")
app.UntitledNotepad.menu_select("Help->About Notepad")
app.AboutNotepad.OK.click()
app.UntitledNotepad.Edit.type_keys("pywinauto Works!", with_spaces=True)
适用场景
- Windows 桌面软件自动化测试(QA)
- 重复性 GUI 操作批处理(表单填写、数据录入)
- 没有 API 的老软件自动化控制
- 配合 RPA 流程的桌面端环节
项目数据
- GitHub 6.2k Stars,最新版 v0.6.9,BSD 3-Clause 协议(0.6.0 起;早期为 LGPL)
- 纯 Python,依赖 pyWin32 + comtypes
- 文档齐全(ReadTheDocs),StackOverflow 有专属标签
💡 与 Windows-MCP 的区别:pywinauto 是程序员写脚本的库(确定性、可复用);Windows-MCP 是让 AI Agent 实时操控 Windows(自然语言驱动)。两者可以互补。
暂无评论
