news 2026/9/11 3:23:23

Midscene.js 快速上手指南:AI 视觉做浏览器自动化,不写一个选择器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Midscene.js 快速上手指南:AI 视觉做浏览器自动化,不写一个选择器

Midscene.js 快速上手指南:AI 视觉做浏览器自动化,不写一个选择器

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

写 UI 自动化脚本时,最耗时的往往不是操作本身,而是定位元素:写好一个 CSS 选择器,等页面一改版,整段脚本就失效。Midscene.js 是一个 AI 视觉驱动的 UI 自动化工具——你用自然语言描述任务(比如“点击登录按钮”),它基于截图识别界面元素并直接执行,全程不依赖 DOM 结构。

和传统选择器有什么区别

传统做法Midscene.js
元素怎么找到手写 CSS 选择器或 XPathAI 看截图直接定位
页面改版后脚本跟着失效,要逐个修走纯视觉路径,不受布局影响
Canvas、游戏界面没有 DOM,基本做不了截图能看清就能操作

🚀 先试后学:三个零门槛体验入口

Chrome 扩展,不写代码。装好扩展,打开任意网页,在提示框里输入想做的事,Midscene 截图并代你执行。不用装依赖,也不用写一行代码。

Android Playground,控制真机。手机用 USB 连上电脑,打开内置的 Android Playground。它通过 adb 控制本地设备,你输入自然语言指令,就能操作屏幕上的应用。

iOS Playground,真机与模拟器。iOS 侧有对应的 Playground,走 WebDriverAgent 控制本地 iOS 设备和模拟器,使用方式与前两个一致。

⚡ 安装与第一段代码

安装 Web 包:

npm install @midscene/web

最小可运行示例,用自然语言驱动浏览器:

import { AgentOverPlaywright } from '@midscene/web'; const agent = new AgentOverPlaywright(); await agent.launch({ headless: false }); await agent.aiAction('打开 GitHub 并搜索 Midscene.js'); await agent.aiAction('点击第一个搜索结果');

桥接模式复用本机浏览器。如果你要用已打开的 Chrome 里现成的登录态和 Cookie,不必新起浏览器:在本地终端跑起 Midscene SDK,连接到现有桌面浏览器,再下发指令即可。需要复用 Cookie 或做复杂浏览器操作时,这个模式比较合适。

🖥️ 能力一览:各平台能做什么

平台接入方式适用情况
WebPuppeteer / Playwright / 桥接模式浏览器页面自动化、端到端测试
AndroidJavaScript SDK + adb本地安卓真机
iOSJavaScript SDK + WebDriverAgent本地 iOS 设备与模拟器
任意自定义界面JavaScript SDK内部系统、游戏界面

API 分三类:交互 API 负责点击、输入、滚动等操作;数据提取 API 从界面和 DOM 中取出结构化信息;工具函数如aiAssert()aiLocate()aiWaitFor()覆盖断言、定位和等待。

📷 它怎么工作:只看截图

Midscene.js 的元素定位和交互走纯视觉路径:把截图交给视觉语言模型,模型直接返回元素位置,不读取任何 DOM。Canvas 和游戏这类没有 DOM 的界面因此也能操作。目前支持的模型包括 Qwen3-VL、Doubao-1.6-vision、gemini-3-pro 和 UI-TARS。

源码按职责拆分:核心引擎在 packages/core/src/,负责视觉定位与任务执行;Web、Android、iOS 的接入层分别在 packages/web-integration/src/、packages/android/src/、packages/ios/src/;回放与可视化界面在 packages/visualizer/src/。

两个机制值得了解。一是缓存:同一个脚本重复执行时复用之前算好的结果,重跑更快也更省开销。二是可视化回放报告:按时间轴回放每一步的描述、执行时间和截图,出问题时容易定位在哪一步。

适合谁与典型用法

电商回归测试。商品页经常改版,选择器脚本寿命短。把搜索、筛选、加购、下单这类流程用自然语言写成脚本,页面改版后只要元素还能被看清,流程就能继续跑,维护量小很多。

移动应用流程验证。安卓或 iOS 版本更新后,用 Playground 走一遍核心路径:设置、登录、支付。不必为每种设备维护一套测试脚本,直接验证用户实际会走的路径。

跨界面数据提取。Web 看板和移动端应用都能用数据提取 API,把屏幕上的信息抓成结构化数据,方便做业务监控和数据分析。

⚙️ 上手前的建议

  • 按场景选模型。不同视觉语言模型在成本、速度、准确率上有差异,先在自己的页面上跑几个样例再定。
  • 重复执行打开缓存。重复任务复用已有结果,省时间也省算力。
  • MCP 服务对接上层代理。Midscene 能把 Agent 的原子操作暴露为 MCP 工具,让其他代理用自然语言检查和操作 UI。
  • 调试靠现成工具。用 Playground 或扩展下发小指令,单步验证;执行完打开回放报告核对过程。

📚 资源入口

  • 官方文档(英文):apps/site/docs/en/
  • 快速开始:apps/site/docs/en/quick-start.mdx
  • API 参考:apps/site/docs/en/reference/
  • Android 入门:apps/site/docs/en/platforms/android.mdx
  • iOS 入门:apps/site/docs/en/platforms/ios.mdx
  • Playwright 集成:apps/site/docs/en/integrate-with-playwright.mdx

建议从 Chrome 扩展开始:装好扩展,打开任意页面,把想做的事用一句话发出去。

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

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

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

多Agent点对点通信:hermes peer协议解析与订单履约落地实践

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

作者头像 李华
网站建设 2026/9/11 3:23:19

YOLOv8小目标检测工程实践:安全锥识别与边缘部署

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

作者头像 李华
网站建设 2026/9/11 3:22:54

多Agent协作拓扑选型:四种模式对比与踩坑实践

1. 先说结论:多 Agent 不是团队越大越好 两三年前我第一次做多 Agent 项目,想法非常简单粗暴:任务复杂,那就多拆几个角色,角色不够再加人。最开始是 2 个,后来到 5 个,最高峰一次上线了 12 个 A…

作者头像 李华
网站建设 2026/9/11 3:21:57

Winform变身HTTP服务:C# 中通过 HttpListener 实现 Json 接口实战

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

作者头像 李华