# Midscene - Vision-Driven UI Automation
> AI-powered, vision-driven UI automation for every platform.
## Other
- [BDD 风格脚本(Gherkin)](/zh/advanced/bdd-style-scripts-with-gherkin.md): 此特性从 Midscene 1.10 开始支持。BDD 相关能力仍处于 Beta 阶段,未来 API 可能发生变化。 Gherkin 是一种用纯文本描述行为示例的语法,常用于 BDD(Behavior-Driven Development,行为驱动开发)流程。一个 BDD 场景通常包含三类步骤:Given 描述前置条件,When 描述用户操作,Then 描述预期结果。 举例来说,当需要测试待办事项页面的新增功能时,可以把用例写成下面的 Gherkin 脚本。 较长的 GUI 用例也可以写在同一个 Scenario 中。你可以按业务阶段组织步骤,每个阶段都使用一组 Given、When、Then。 这种写法适合一个业务 scenario 自然包含多个 UI 阶段的情况,例如购物车确认、配送地址选择、支付和最终确认。 在 AI 通过自然语言驱动 GUI 操作的场景中,Gherkin 很适合描述操作用例。它让脚本保留自然语言的可读性,同时提供稳定的步骤结构。这种结构也有助于模型生成更规范的用例。 Gherkin 的完整语法可以参考官方的 Cucumber Gherkin reference。
- [Midscene AndroidWorld Benchmark 测试报告](/zh/android-world-benchmark-report.md): 本文是 Midscene 针对 AndroidWorld benchmark 的测试报告。本次测试中,Midscene 取得了 Pass@1 93.10%、Pass@2 95.69%、Pass@3 97.41% 的结果。
- [Midscene AppControlBench Benchmark 测试报告](/zh/app-control-bench-report.md): 本文是 Midscene 针对 AppControlBench benchmark 的测试报告。本次测试中,每个模型均覆盖同一批 60 个任务,Midscene 取得了如下成绩: 注:Doubao Seed 2.1 Turbo 使用火山引擎官方价格计算成本:推理输入 ¥3 / 百万 tokens、缓存命中 ¥0.6 / 百万 tokens、推理输出 ¥15 / 百万 tokens。其他模型成本按 OpenRouter 价格计算,美元按 ¥6.8 / $1 换算。 可以发现,Midscene + GUI 视觉的路线在成本、通过率上都有很强的竞争力。
- [使用 YAML 格式的自动化脚本](/zh/automate-with-scripts-in-yaml.md): 在大多数情况下,开发者编写自动化脚本只是为了执行一些简单流程,比如检查某些内容是否出现,或者验证某个关键用户路径是否可用。此时维护一个大型测试项目会显得毫无必要。 Midscene 提供了一种基于 .yaml 文件的自动化测试方法,这有助于你专注于编写流程,而不是测试框架。 这里有一个示例,通过阅读它的内容,你应该已经理解了它的工作原理。
- [Awesome Midscene](/zh/awesome-midscene.md): 基于 Midscene.js 开发的社区项目精选列表,涵盖不同平台和编程语言的扩展功能。
- [基本概念](/zh/basics.md): 本文概述 Midscene 的核心概念,包括 Agent 的用法、架构、抽象方式和能力边界。你将了解 Agent 如何连接 AI 模型与目标界面,以及如何实现交互、断言等操作。
- [即时操作和深度思考](/zh/blog-introducing-instant-actions-and-deep-think.md): 从 Midscene v0.14.0 开始,我们引入了两个新功能:即时操作(Instant Actions)和深度思考(Deep Think)。
- [Chrome 桥接模式(Bridge Mode)](/zh/bridge-mode.md): Midscene Chrome 插件的桥接模式允许你使用本地脚本来控制桌面版 Chrome。脚本既能连接新标签页,也可以附着到当前激活的标签页。 这种方式能复用本地浏览器的 cookies、插件和页面状态,与自动化脚本协作完成任务;在自动化领域也被称作 “man-in-the-loop”。
- [缓存 AI 规划和定位](/zh/caching.md): Midscene 支持缓存两类内容:AI 规划的步骤,以及匹配到的元素定位信息。前者可用于各类自动化任务,以减少 AI 模型调用次数并提升执行效率;后者中的 DOM 元素定位信息(XPath)在 Web 自动化任务中可显著减少重复定位开销,不过目前仅适用于 Web 场景,并且存在一定局限性。 效果 当缓存命中时,脚本的执行时间会显著降低。例如在如下案例中,执行耗时从51秒降低到了28秒。 before after
- [更新日志](/zh/changelog.md)
- [](/zh/common/get-cdp-url.md)
- [](/zh/common/prepare-ios.md)
- [](/zh/common/setup-env.md)
- [解析报告文件](/zh/consume-report-file.md): Midscene 的 HTML 报告文件记录了单个 Agent 运行过程中的完整信息,用以回放和调试。 从 v1.7.0 开始,你可以把报告文件中的原始截图和 JSON 数据提取出来,或者把报告转录为 Markdown,方便其他工具继续消费这些内容。
- [数据隐私](/zh/data-privacy.md): Midscene.js 是一个开源项目(GitHub: Midscene),遵循 MIT 许可证。你可以在公开仓库中查看到所有代码。 当使用 Midscene.js 时,你的页面数据(包括截图)将直接发送到你配置的 AI 模型提供商。没有第三方平台会访问这些数据。你需要关注的是模型提供商的数据隐私政策。 如果你希望在你自己的环境中构建 Midscene.js 和它的 Chrome 扩展(而不是使用我们已发布的版本),你可以参考 贡献指南 以找到构建说明。
- [扩展和维护 Test Runner](/zh/extend-test-runner.md): @midscene/test 支持注册业务 Node(节点)、管理运行资源和定义执行生命周期。框架维护者可以使用这些能力,接入浏览器、Agent、外部工具和业务接口,打造面向团队的定制化测试底座。 如果你想先了解整体设计,请阅读 Test Runner 概览。
- [常见问题 FAQ](/zh/faq.md)
- [与任意界面集成](/zh/integrate-with-any-interface.md): 你可以使用 Midscene 的 Agent 来控制任意界面,比如 IoT 设备、内部应用、车载显示器等,只需要实现一个符合 AbstractInterface 定义的 UI 操作类。 在实现了 UI 操作类之后,你可以获得 Midscene Agent 的全部特性: TypeScript 的 GUI 自动化 Agent SDK,支持与任意界面集成用于调试的 Playground通过 yaml 脚本控制界面通过 CLI 命令接入 Skills
- [集成到 Playwright](/zh/integrate-with-playwright.md): Playwright.js 是由微软开发的一个开源自动化库,主要用于对网络应用程序进行端到端测试(end-to-end test)和网页抓取。 与 Playwright 的集成方式有以下两种方式: 直接用脚本方式集成和调用 Midscene Agent,适合快速体验、原型开发、数据抓取和自动化脚本等场景。在 Playwright 的测试用例中集成 Midscene,适合需要执行 UI 测试的场景。
- [集成到 Puppeteer](/zh/integrate-with-puppeteer.md): Puppeteer 是一个 Node.js 库,它通过 DevTools 协议或 WebDriver BiDi 提供控制 Chrome 或 Firefox 的高级 API。Puppeteer 默认在无界面模式(headless)下运行,但可以配置为在可见的浏览器模式(headed)中运行。
- [Midscene.js - 面向 E2E 测试的 GUI Agent](/zh/introduction.md): AI 视觉驱动。全平台覆盖。开箱即用。 Midscene 是一个用于视觉驱动 UI 测试与自动化的开源 SDK。你用自然语言描述操作目标,Midscene 会驱动多模态模型为你规划并操作界面。它覆盖 Web、移动端、桌面端,甚至