开源、视觉驱动的 UI 测试。用自然语言编写测试用例,自动化任意平台。
使用 Midscene Skills 搭配 OpenClaw 控制任意平台
- Web 自动化 - 在浏览器中自动注册 GitHub 表单并通过所有字段校验
- iOS 自动化 - 美团下单咖啡
- iOS 自动化 - 自动点赞 @midscene_ai 的第一条推文
- Android 自动化 - 懂车帝:查看小米 SU7 参数
- Android 自动化 - 预订圣诞节酒店
- 车机测试中的机械臂 + 视觉 + 语音方案
大多数 UI 自动化都依赖页面结构,包括读取 DOM 或无障碍树的 AI 工具。页面结构既脆弱又不完整:选择器一重构就失效;缺少语义化标注的元素,如纯图标按钮、自定义控件和 <canvas>,对它们是“看不见”的;原生应用与跨域 iframe 也难以触达;页面结构还无法判断界面实际看起来是否正确。
Midscene 仅凭截图工作。你只需用自然语言描述每一步:
- 更低的维护成本:UI 变化时,无需再追着改选择器。
- 触达每个元素与界面:只要人眼能看到,Midscene 就能定位。即使元素没有语义化标注,或位于
<canvas>、原生应用、跨域 iframe 上,也可以定位。 - 校验用户真正看到的效果:验证颜色、高亮、布局与渲染状态,而不只是判断 DOM 节点是否存在。
- 两种测试方式:接入你的 Playwright / Vitest 测试,或让 AI Agent 通过 Skills 自主测试。
Midscene 首先为 UI 测试而生,但同一套视觉驱动引擎也能胜任任意 UI 自动化任务。
只要能截图,Midscene 就能工作。Web 浏览器、Android、iOS、HarmonyOS、桌面应用,以及任意自定义界面,全部通过同一套 API。
你可以用 JavaScript SDK 或 YAML 编写自动化,也可以通过 Skills 交给 AI Agent。所有方法都可以在 API 参考 中查阅,包括 aiAct、aiQuery 和 aiAssert。
Midscene 在 UI 操作上完全采用纯视觉路线:元素定位仅基于截图。它支持 Qwen3.x、Doubao-Seed-2.1、GLM-4.6V、gemini-3.5-flash、UI-TARS 等具备极强 UI 定位能力的多模态模型,也包括可自托管的开源选项。在数据提取与页面理解场景中,你仍可按需选择携带 DOM。
阅读更多:模型策略。
扩展 Midscene.js 能力的社区项目:
- midscene-ios - 面向 Midscene 的 iOS Mirror 自动化支持
- midscene-pc - 适配 Windows、macOS、Linux 的 PC 操作设备
- midscene-pc-docker - 预装 Midscene-PC 服务端的 Docker 镜像
- Midscene-Python - Midscene 自动化 Python SDK
- midscene-java by @Master-Frank - Midscene 自动化 Java SDK
- midscene-java by @alstafeev - Midscene 自动化 Java SDK
感谢以下项目:
- Rsbuild 与 Rslib 提供构建工具支持。
- UI-TARS 提供开源 Agent 模型 UI-TARS。
- Qwen-VL 提供开源多模态模型 Qwen-VL。
- scrcpy 与 yume-chan 让我们能在浏览器中控制 Android 设备。
- appium-adb 提供 adb 的 JavaScript 桥接。
- appium-webdriveragent 提供 JavaScript 操作 XCTest 能力。
- YADB 提供 yadb 工具以提升文本输入性能。
- libnut-core 提供跨平台原生键鼠控制。
- Puppeteer 提供浏览器自动化与控制能力。
- Playwright 提供浏览器自动化、控制与测试能力。
如果你在研究或项目中使用了 Midscene.js,请引用:
@software{Midscene.js,
author = {Xiao Zhou, Tao Yu, YiBing Lin},
title = {Midscene.js: Your AI Operator for Web, Android, iOS, Automation & Testing.},
year = {2025},
publisher = {GitHub},
url = {https://github.com/web-infra-dev/midscene}
}Midscene.js 采用 MIT 许可证。
