news 2026/9/12 6:41:33

Midscene AI自动化教程:3步用自然语言控制浏览器和手机

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Midscene AI自动化教程:3步用自然语言控制浏览器和手机

Midscene AI自动化教程:3步用自然语言控制浏览器和手机

【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene

E2E 测试里最耗时间的部分,往往不是写测试逻辑,而是维护一堆选择器:页面结构一变,用例就挂;移动端和桌面端原生应用连 DOM 都没有,传统工具基本无计可施。Midscene 换了条路线:它用视觉语言模型"看"屏幕截图,像人一样找到界面上的元素,再执行点击、输入、滚动,全部由自然语言指令驱动。核心实现位于 packages/core/,这套视觉驱动的 AI 自动化方式,就是它区别于 Selenium 类工具的关键。

它是什么:一个"看屏幕"的 GUI Agent

Midscene 是一个面向 E2E 测试的 GUI Agent,解决的是"操作界面并验证结果"这件事。同一套 Agent API 覆盖 Web、Android、iOS、HarmonyOS 和桌面应用五个平台,并内置了测试框架、交互式 HTML 报告和 Playwright、Puppeteer 集成接口。它还提供浏览器扩展和分平台 Playground,不写一行代码就能先试起来。想了解全貌,可以看 官方介绍文档。

能做什么:三个自然语言指令

整个框架围绕三个 API 动词展开:

  • aiAct:规划并执行交互,比如"点击登录按钮"。
  • aiQuery:提取结构化数据,比如"取出页面中商品的名称和价格"。
  • aiAssert:检查界面状态,比如"邮箱输入框下方显示了错误提示"。

在 Playwright 里写一个 Web 测试,大致是这样:

await agent.aiAct('搜索耳机,然后将结果筛选为价格低于 100 美元'); await agent.aiAssert('搜索结果中的每件商品价格都低于 100 美元');

断言和操作走的是同一套视觉路径:Midscene 像人工测试那样观察屏幕,颜色、选中高亮、canvas 绘制的内容都能检查,不依赖 DOM。

Chrome 扩展是最直接的体验入口:页面右侧的侧边栏里输入指令,它立即定位元素并执行操作,执行过程可以随时导出成报告文件。

上手路径:先装扩展,再本地运行 Playground

只想体验的话,三步走:

  1. 安装 Midscene Chrome 扩展,打开任意网页的侧边栏,在设置里粘贴多模态模型配置(云端模型或本地 Ollama 都可以)。
  2. 输入符合当前页面的指令,例如"在搜索框输入关键词并回车"。
  3. 确认指令效果后,把同样的指令通过对应 Agent API 写进代码即可,扩展与@midscene/web共享核心能力。

想本地跑完整 Playground(Web、Android、iOS 各有独立入口),需要 Node 20.19+ 和 pnpm:

git clone https://gitcode.com/GitHub_Trending/mid/midscene cd midscene pnpm install

装完按 快速开始指南 启动对应平台的 Playground,再连上设备或浏览器即可。

没有 DOM 的屏幕怎么定位元素

传统工具靠 CSS 选择器或 XPath,遇到 canvas 渲染的页面、纯图标按钮就抓瞎。Midscene 不关心 DOM:每步操作前把截图发给模型,模型返回元素位置和该执行的动作。

这条路有两个实际好处。第一,跨域 iframe、自定义控件、原生 App 界面一视同仁。第二,截图比 DOM 树小得多,调用成本可控——官方 AppControlBench 报告中,60 个任务总模型费用 0.59 美元,通过 58 个,Pass@1 为 96.7%。规划、视觉、断言的模型请求如何在 packages/core/src/ai-model/ 里组织,读源码可以看到细节。

使用场景:两个典型用法

维护 Web E2E 套件的测试工程师:把不稳定环节从选择器迁移到 Midscene,UI 流程用自然语言描述。每次执行后打开生成的 HTML 报告,逐步查看截图、AI 决策过程和断言结果,回归失败时直接定位到出错的步骤。

测安卓应用的 QA:启动 Android Playground 连上手机,输入"打开设置,查看当前安卓版本号",能实时看到任务被拆成 Planning、Locate、Tap 一步步执行,不用先写 instrumentation 代码。

进阶:YAML 脚本与多平台工程化

想把自动化沉淀为测试工程,有两条路径。一条是@midscene/cli命令行工具,直接运行 YAML 格式的自动化脚本,UI 流程和预期结果写在 YAML 里即可,适合快速落地的场景。另一条是 Midscene Test 框架(Beta),它把声明式测试意图和工程代码分开:YAML 写 UI 流程,TypeScript 节点封装 API 调用、数据准备和清理,自带生命周期钩子、重试和并发隔离。

平台代码各自独立成包:packages/android/、packages/ios/、packages/computer/,每层设备连接和 Playground 都是分开的。自定义界面也按同样思路接入——提供截图和操作能力即可,文档在 integrate-with-any-interface。

关键链接

  • 中文文档:概念、模型配置与各平台集成指南
  • Playground 快速开始:扩展安装、模型配置和第一条指令
  • YAML 脚本运行器:用 CLI 跑 YAML 自动化脚本

下次写用例时,试着把一条选择器换成一句自然语言描述——这是感受 Midscene 最直接的方式。

【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 6:40:33

微信设备风控与澎湃OS刷机风险深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 6:38:44

Java泛型实战:提升代码质量与开发效率

1. 为什么Java泛型是提升代码质量的利器第一次接触泛型是在2013年接手一个电商后台项目时。当时系统里充斥着这样的代码:List cartItems new ArrayList(); cartItems.add("手机"); cartItems.add(100); // 价格被错误地添加为Integer运行时才爆发的Class…

作者头像 李华
网站建设 2026/9/12 6:38:14

机器学习论文每周精选怎么追:ML-Papers-of-the-Week 入门

机器学习论文每周精选怎么追:ML-Papers-of-the-Week 入门 【免费下载链接】AI-Papers-of-the-Week 🔥Highlighting the top ML papers every week. 项目地址: https://gitcode.com/GitHub_Trending/ml/AI-Papers-of-the-Week ML-Papers-of-the-We…

作者头像 李华
网站建设 2026/9/12 6:36:51

网页视频下载完整指南:猫抓嗅探扩展替你做的 4 件事

网页视频下载完整指南:猫抓嗅探扩展替你做的 4 件事 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 课程到期前想把视频留存在本地、直…

作者头像 李华
网站建设 2026/9/12 6:36:03

HyperFrame:视频时序信息的高效中间表示与工程实践

HyperFrame 这个词,最近在视频处理和动态三维重建的圈子里热度一直在涨。不少刚接触的人以为它是某个新算法的名字,其实它更像是一种处理视频时序信息的中间表示方式:把一小段时间窗口内的若干帧,通过某种方式“压”成一个可供模型…

作者头像 李华