核心用法
Handsfree Windows Control 是一套基于 CLI 的 Windows 自动化解决方案,整合两大技术栈:
- 桌面应用自动化:基于 Microsoft UI Automation (UIA) API,支持通过控件名称、类型等属性精准定位元素,无需依赖屏幕坐标。
- 浏览器自动化:基于 Playwright,支持 Chromium 内核的网页操控,自动保存登录会话与 Cookie。
首次使用需运行 python scripts/setup.py 自动安装依赖(约 200MB 浏览器二进制文件),支持自定义安装路径与跳过浏览器安装。
典型工作流
桌面应用:hf start 启动应用 → hf tree 或 hf inspect 发现控件 → hf click/type 执行操作
浏览器:hf browser-open 打开页面 → hf browser-snapshot 检查结构 → hf browser-click/type 交互 → hf browser-screenshot 验证
混合宏:通过 YAML 文件串联桌面与浏览器步骤,用 hf run 批量回放
显著优点
1. 透明可控:所有安装路径、持久化数据(浏览器配置、会话状态)均明确文档化,卸载命令完整提供
2. 结构化发现:强制要求先执行 tree/inspect/browser-snapshot 再操作,避免基于坐标的脆弱脚本
3. 混合场景支持:单一 YAML 宏可无缝衔接桌面应用与网页操作,适合企业级端到端测试
4. 会话持久化:浏览器登录状态自动保存,减少重复认证
潜在局限与风险
| 维度 | 说明 |
|------|------|
| **平台锁定** | 仅支持 Windows,依赖 PowerShell 执行环境 |
| **权限要求** | UIA 操作需应用窗口可见且未最小化,部分安全软件可能拦截 |
| **维护状态** | 依赖 `handsfree-windows` 开源仓库(公开只读),版本更新依赖社区 |
| **浏览器体积** | Chromium 二进制约 800MB,首次下载耗时 |
| **凭证安全** | 明确禁止脚本输入密码,需人工介入登录环节,设计合理但降低全自动化程度 |
适合人群
- QA 工程师:构建跨桌面-网页的端到端测试套件
- 高级用户:自动化重复性办公流程(报表生成、数据录入)
- 开发者:调试 UIA 控件树结构或 Playwright 选择器
常规风险
- 破坏性操作:
delete/submit/send等命令强制要求人工确认,误触风险可控 - 隐私泄露:浏览器配置文件含敏感 Cookie,需妥善保护
~/.handsfree-windows/browser-profiles/目录 - 依赖漂移:Playwright 与 Chromium 版本绑定,系统更新后可能出现兼容性断裂