Midscene.js
开源的界面自动化框架,靠截图识别按钮和输入框,不依赖 DOM,支持用自然语言写步骤,适合测试工程师在 Playwright 或 Vitest 里给已有用例补上视觉操作。

Midscene.js 是一个开源的界面自动化框架,核心思路是让程序像人一样看屏幕:读取截图,找到按钮、输入框或列表项,再执行点击、输入、滚动。它不依赖 DOM 结构,所以 canvas 画出来的界面、原生 App 界面也能操作。测试人员用自然语言写步骤和预期,比如「搜索耳机,把结果筛选为价格低于 100 美元」,框架负责把这句话变成实际操作。
两种用法
一种是给已有测试加视觉能力。Web 项目接入 Playwright Test,移动端和桌面端接入 Vitest,在 JavaScript 测试里调用 aiAct、aiWaitFor、aiAssert 等接口,和原有断言混着写。另一种是用 Midscene Test(@midscene/test)写 YAML 用例,AI 操作和业务操作放在同一个文件里,业务逻辑封装成自定义 Node,用 TypeScript 准备数据、校验接口、清理资源。
平台与模型
同一套 API 对应多个包:@midscene/web、@midscene/android、@midscene/ios、@midscene/harmony、@midscene/computer,自定义界面用 @midscene/core。模型可选豆包、DeepSeek、Qwen、GPT、Gemini、Kimi 等,用 API Key 接入,也可以用 ChatGPT 订阅额度授权调用 GPT 模型。
费用与限制
框架本身 MIT 完全开源,不收费;成本主要来自模型调用,官方给出的 AppControlBench 评测里,豆包 Seed 2.1 Turbo 跑 60 项任务总费用 $0.59。测试框架带生命周期钩子、失败重试、超时、并发隔离和逐步截图报告。用之前要准备好模型凭据,并接受 AI 定位偶有偏差、需要重试的现实。