• 简体中文
  • Midscene.js - 视觉驱动的 UI 测试与自动化

    Midscene 是一个用于视觉驱动 UI 测试与自动化的开源 SDK。你用自然语言描述操作目标,Midscene 会驱动多模态模型为你规划并操作界面。它覆盖 Web、移动端、桌面端,甚至 <canvas> 场景。

    准备动手?

    前往 快速开始,几分钟内跑通你的第一个自动化;或者通过 Chrome 插件 零代码体验。

    为什么选择 Midscene

    大多数 UI 自动化都依赖页面结构,包括读取 DOM 或无障碍树的 AI 工具。页面结构既脆弱又不完整:选择器一重构就失效;缺少语义化标注的元素,如纯图标按钮、自定义渲染的控件和 <canvas>,对它们是“看不见”的;原生应用和跨域 iframe 也难以触达;页面结构还无法判断界面实际看起来是否正确。

    Midscene 走了一条不同的路:它仅凭截图、借助多模态模型工作,你只需像真人测试那样用自然语言描述操作目标和验证条件。这会改变 UI 测试的体验:

    • 不再因每次重构而失效。 标记或样式变化时无需再追着改选择器,用例的维护成本大幅下降。
    • 触达每个元素、每种界面。 只要人眼能看到,Midscene 就能定位。没有语义化标注的元素、<canvas>、原生应用,以及基于结构的工具够不到的跨域 iframe,都可以处理。
    • 校验用户真正看到的效果。 验证视觉结果,包括颜色、高亮、布局和渲染状态,而不只是判断某个节点是否存在于 DOM 中。
    • 两种测试方式。 把 Midscene 接入你现有的 Playwright 或 Vitest 测试,或让 AI Agent 通过 Skills 自主测试你的应用。
    • 可读的失败信息。 每次运行都会生成可逐步回放的可视化报告。

    Midscene 首先为 UI 测试而生,但同一套视觉驱动引擎也能胜任任意 UI 自动化任务。你可以按自己的工作流使用它。

    能自动化什么

    只要能截图,Midscene 就能工作。Web 浏览器、Android、iOS、HarmonyOS、桌面应用,以及任意自定义界面,全部通过同一套 API。每个平台在侧边栏都有各自的上手指南。

    你可以用 JavaScript SDK 或 YAML 编写自动化,并在 API 参考 中查阅 aiActaiQueryaiAssert 等所有方法。如需了解各类 API 的职责,以及如何在 aiAct 与 JavaScript 编排之间选择,请参阅基本概念

    多模态模型驱动

    Midscene 支持众多具备极强 UI 定位能力的常用多模态模型。你可以选用最容易获取的模型,也可以选择可自托管的开源模型:Qwen3.xDoubao-Seed-2.1GLM-4.6Vgemini-3.5-flashUI-TARS

    请在支持的模型与配置中选择模型并复制对应配置。

    案例展示

    在 Web 浏览器中自主注册 GitHub 表单,并通过所有字段校验:

    更多 iOS、Android、桌面端与自定义界面的实战案例,见 案例展示

    Benchmark 成绩

    Midscene 在两个 Android Agent benchmark 中取得了以下成绩:

    Benchmark成绩测试配置完整报告
    AndroidWorldPass@1 93.10%、Pass@2 95.69%、Pass@3 97.41%Midscene 1.9.5、Gemini-3.5-Flash查看报告
    MobileWorldPass@1 78.63%(92/117)Midscene 1.10.3、Gemini-3.6-Flash查看报告

    完整报告包含运行配置、验证条件说明和每项任务的执行记录。

    资源与社区

    致谢

    Midscene 构建于众多优秀的开源项目之上,包括 UI-TARS、Qwen、Playwright、Puppeteer、scrcpy、appium、WebDriverAgent、YADB 和 libnut-core。完整列表请见 README

    License

    Midscene.js 使用 MIT 许可协议