Skip to content

Latest commit

 

History

History
144 lines (97 loc) · 8.33 KB

File metadata and controls

144 lines (97 loc) · 8.33 KB

Midscene.js

Midscene.js

English | 简体中文

官网: https://midscenejs.com/

web-infra-dev%2Fmidscene | Trendshift

开源、视觉驱动的 UI 测试。用自然语言编写测试用例,自动化任意平台。

npm version hugging face model downloads License discord twitter Ask DeepWiki.com

📣 Midscene Skills 已上线

使用 Midscene Skills 搭配 OpenClaw 控制任意平台

案例

💡 为什么选择 Midscene

大多数 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 参考 中查阅,包括 aiActaiQueryaiAssert

🚀 开始使用

✨ 多模态模型驱动

Midscene 在 UI 操作上完全采用纯视觉路线:元素定位仅基于截图。它支持 Qwen3.xDoubao-Seed-2.1GLM-4.6Vgemini-3.5-flashUI-TARS 等具备极强 UI 定位能力的多模态模型,也包括可自托管的开源选项。在数据提取与页面理解场景中,你仍可按需选择携带 DOM。

阅读更多:模型策略

📄 资源

🤝 社区

🌟 Awesome Midscene

扩展 Midscene.js 能力的社区项目:

📝 致谢

感谢以下项目:

  • RsbuildRslib 提供构建工具支持。
  • UI-TARS 提供开源 Agent 模型 UI-TARS。
  • Qwen-VL 提供开源多模态模型 Qwen-VL。
  • scrcpyyume-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}
}

✨ Star 历史

Star History Chart

📝 许可协议

Midscene.js 采用 MIT 许可证


如果这个项目对你有帮助或启发,欢迎点个 Star