Midscene.js:用自然语言驱动 E2E 自动化测试,不必写选择器

发布时间:2026/9/12 12:34:52
Midscene.js:用自然语言驱动 E2E 自动化测试,不必写选择器 Midscene.js用自然语言驱动 E2E 自动化测试不必写选择器【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene.js 是一个基于视觉理解的 GUI 自动化框架让你用自然语言描述操作意图由它截图识别界面元素并完成点击、输入、断言覆盖 Web、Android、iOS 与桌面端。本文讲清它的工作方式、如何快速上手、关键配置怎么做以及它适合和不适合哪些场景方便你判断能否接入现有的测试流程。为什么看屏幕而不是解析 DOM传统自动化脚本靠 CSS 选择器或 XPath 定位元素页面结构一改脚本就失效遇到canvas、自绘控件或跨域 iframe 时往往连稳定的选择器都拿不到测试工程师只能反复修复定位逻辑。Midscene.js 走的是另一条路像测试人员看屏幕一样工作——先截图模型在截图中识别按钮、输入框、文案的位置再执行点击、输入或滚动。README 里把这个设计概括为看屏幕、按所见行动、核对所见结果。对维护成本来说这意味着页面换了类名或样式脚本多数时候不用改只有当界面本身发生可见变化时才需要调整描述文字。能力概览三件最常用的事一句话完成一个流程aiAct方法接受一段完整的自然语言任务Agent 自行拆解成多步执行例如“打开设置查看当前 Android 版本号”。页面跳转、表单填写、等待结果加载都可以在一句话里串起来不需要为每个步骤单独写代码。从屏幕里提取结构化数据aiQuery能按你的描述把页面上的信息整理成 JSON 返回适合把商品价格、表单报错、设备信息等数据取出来供后续步骤或脚本断言使用。用视觉方式验证结果aiAssert的断言标准同样是“看屏幕”用自然语言描述期望画面比如“选中项带有蓝色边框和对勾”“邮箱输入框下方出现错误提示”。它能看到颜色、高亮、布局这类视觉状态也能覆盖 DOM 断言够不到的 canvas 内容。快速上手先试玩再写代码Midscene.js 提供了两条不写代码就能出结果的路径。方式一浏览器扩展面板安装 Chrome 扩展后源码位于 apps/chrome-extension/当前页面会多出一个 Midscene.js 面板直接输入类似“输入 Midscene.js 并点击搜索”的指令即可运行。面板提供 Action执行、Query提取、Assert断言三种模式运行时会把模型识别到的元素区域框出来便于确认指令是否被正确理解。这种模式适合调指令措辞对着真实页面改描述效果对了再带到脚本里。方式二启动本地 Playground仓库自带本地 Playgroundapps/playground/左侧输入 prompt右侧实时显示目标页面的执行过程与截图。示例中“Click the search bar”这条指令直接在已打开的 eBay 页面上完成点击。移动端体验一致启动 Android Playground 后packages/android-playground/设备屏幕投射到浏览器输入一条指令就能驱动真机完成任务左侧逐步展示 Planning、定位、Action 的执行日志能直接看出 Agent 每步的决策。写第一个脚本指令措辞在 Playground 里验证通过后就可以接入工程。Playwright 的最小用法只有三行const agent new PlaywrightAgent(page); await agent.aiAct(搜索耳机并把结果过滤到 100 美元以下); await agent.aiAssert(搜索结果中的每件商品价格都低于 100 美元);运行结束后打开生成的 HTML 报告即可回看每一步的截图、元素位置与断言结果。Playwright 集成的完整步骤含模型配置见 integrate-with-playwright.mdx。关键配置模型选择与执行验证模型怎么选Midscene.js 不绑定特定厂商支持多种多模态模型也包含可自托管的开源选项。官方给出“模型策略”建议model-strategy.mdx可以先用单一模型跑通再按负载拆分规划模型与视觉模型对成本敏感时可参考 app-control-bench-report.mdx 中 60 个任务的单任务成本数据。结果怎么核对、失败怎么查每次执行都会生成交互式 HTML 报告包含截图、元素定位框、模型决策过程与断言结论这是排障的第一入口。断言失败时先看报告中的定位日志确认模型找到的元素是否正确。如果定位错了优先修改描述补充颜色、位置、相邻文字而不是先改动流程结构。多案例并行时利用框架自带的重试与执行隔离用 YAML 编写声明式用例的方法见 automate-with-scripts-in-yaml.mdx。适用与不适用场景判断适合使用的场景页面结构变动频繁选择器方案维护成本高界面含 canvas、自绘组件、跨域 iframeDOM 难以稳定定位同一流程需要跑在 Web、Android、iOS、桌面等多个平台Agent API 保持一致还在探索阶段先用 Playground 打磨指令措辞再沉淀为正式用例不太适合的场景高并发、大批量重复操作每一步动作都要调用模型耗时与费用随步数增长需要像素级精确校验的场合视觉断言判断的是“可见与否”精细图像比对仍需传统工具无法接入模型服务的环境没有可用的模型配置就无法运行资源入口中文文档目录apps/site/docs/zh/快速上手quick-start.mdxAPI 参考apps/site/docs/zh/reference/测试用例示例packages/test/ 下的目录可直接参考用例写法核心实现Agent 与模型调度逻辑位于 packages/core/src/agent/获取源码只需克隆仓库git clone https://gitcode.com/GitHub_Trending/mid/midscene对新手的路径建议先花十几分钟在 Playground 里输入指令、观察报告建立对“模型如何理解你的描述”的直观感受再进入脚本集成会比直接读 API 文档更快建立判断力。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考