news 2026/9/12 8:02:48

Midscene.js 实战指南:3 步跑通视觉 AI 端到端测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Midscene.js 实战指南:3 步跑通视觉 AI 端到端测试

Midscene.js 实战指南:3 步跑通视觉 AI 端到端测试

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

Midscene 是一个面向 E2E 测试的 GUI Agent,简单说就是"会看屏幕、会动手点"的 AI。你用自然语言描述任务,它自己找按钮、填输入框、验证结果,不用写任何选择器。读完本文,你能在自己的电脑上跑通第一条视觉自动化用例,并知道怎么扩展到 Android 和桌面场景。

场景切入 —— 它帮你解决什么

  • 选择器总失效:页面改一次样式,你的cssSelector就崩一次。测试同事用 Midscene 描述"点击价格低于 100 美元的第一件商品",页面怎么改都不怕。
  • 图标按钮和画布元素没法测:纯图标按钮、<canvas>绘制的内容、跨域 iframe,传统工具根本定位不到,Midscene 靠截图认元素,看得到就能点。
  • 一套用例想覆盖多个平台:同一套 Agent API 能跑 Web、Android、iOS 和桌面,换平台只换设备连接方式,流程描述不用重写。

最小组合 —— 从零到跑通

先做两个前置检查:Node 版本要在 20 以上,手机要能被 adb 识别。

node -v adb devices -l

✅ 第二行命令能看到一行设备序列号,说明设备链路通了。

然后配置 AI 模型,Midscene 需要一个能"看懂 UI"的多模态模型,四个环境变量搞定:

export MIDSCENE_MODEL_BASE_URL="https://ark.cn-beijing.volces.com/api/v3" export MIDSCENE_MODEL_API_KEY="your-api-key" export MIDSCENE_MODEL_NAME="doubao-seed-2-1-turbo-260628" export MIDSCENE_MODEL_FAMILY="doubao-seed"

最后一条命令启动 Android Playground(一个零代码的交互面板):

npx --yes @midscene/android-playground

✅ 窗口里手机画面出现、你输入"打开设置页"后手机真的执行了,说明全链路成功。Playground 里的每条指令都对应一个 Agent API,验证完直接搬进脚本就行。

核心能力拆解

用自然语言写测试用例

核心就是三个 API:aiAct执行多步流程,aiAssert验证界面结果,aiQuery提取结构化数据。一个最小用例长这样:

const agent = new AndroidAgent(); await agent.aiAct('打开懂车帝,搜索 SU7,进入参数配置页'); await agent.aiAssert('页面显示了电池容量和电机参数');

⚠️ 避坑:aiAct是自主规划,每步都调用模型,又慢又费 token;能拆成单步的(比如aiTapaiInput)就别让 AI 自由发挥。

配置 AI 模型参数

模型支持 Qwen、Doubao、GLM、Gemini 等自托管或 API 选项,全部通过环境变量注入,也可以在 Playground 窗口的齿轮按钮里直接粘贴配置。

⚠️ 避坑:MIDSCENE_MODEL_FAMILY别漏填,它告诉 Midscene 该用哪套提示词策略适配你的模型,填错了定位准确率会明显下降。

连接 Android 设备

Midscene 通过 adb 控制真机或模拟器,手机侧只需要开一个开关:开发者选项里的USB 调试。连上数据线后:

adb devices -l

✅ 输出里出现device状态的行就通了。

⚠️ 避坑:模拟器同样算设备,但没有 USB 调试开关时先确认模拟器控制台已启用 ADB over WiFi,否则adb devices永远是空的。

进阶玩法与调优

如果你想控制"正在自己用"的桌面 Chrome(复用 cookies 和登录态,不用维护一堆测试账号),可以启用桥接模式:安装 Midscene 插件后,本地脚本这样连上去:

import { AgentOverChromeBridge } from '@midscene/web/bridge-mode'; const agent = new AgentOverChromeBridge(); await agent.connectNewTabWithUrl('https://www.bing.com'); await agent.ai('搜索 AI 101 并回车'); await agent.aiAssert('搜索结果显示在页面中'); await agent.destroy();

插件会弹窗询问是否允许连接,点 Allow 即可;脚本侧记得模型环境变量配在终端里,而不是浏览器里。

如果你想压低成本或提高复杂任务稳定性,可以按场景拆模型:简单页面用便宜的视觉模型,复杂流程开启deepThink加强规划,小元素定位开启deepLocate

踩坑速查

症状:用 Ollama 本地模型报 403 →原因:Ollama 默认拒绝来自浏览器扩展的跨域请求 →解决export OLLAMA_ORIGINS="*"后重启 Ollama

症状adb devices看不到手机 →原因:USB 调试没开,或数据线只供电不传数据 →解决:开开发者选项的 USB 调试,换数据线后执行adb kill-server && adb start-server

症状:Web 侧报Cannot access a chrome-extension:// URL of different extension原因:其他浏览器插件向页面注入了 iframe 或脚本,与 Midscene 冲突 →解决:打开chrome://extensions/逐个禁用可疑插件,刷新重试

症状:小图标、和周围元素长得很像的按钮定位不准 →原因:单次定位在密集元素间选错了 →解决:调用时加{ deepLocate: true },多花一次模型调用换准确率

一句话收束

Midscene 把"写选择器"从 E2E 测试里拿掉了,换成一句人话,Web、Android、iOS 共用同一套 API。建议你先在 Playground 里把常用指令试熟,再固化成脚本,核心实现可以看 核心源码 和 Android 平台支持,更多细节参考官方文档。🚀

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

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

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

多线程环境下count更新的并发问题与解决方案

/* 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 8:01:40

dsh 后台运行指南:终端关闭不断线,nohup/tmux/systemd 实战

最近我把 DeepSeek Harness&#xff08;命令行工具 dsh&#xff09;当成主力智能体框架来用&#xff0c;每天都要在上面起对话、挂多轮任务、跑连接外部环境的自动化流程。用得越深就越发现一个问题&#xff1a;只要本地开的终端窗口被关掉&#xff0c;或者 SSH 远程连接闪断一…

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

C++ STL容器核心解析与高效使用指南

1. C容器概述&#xff1a;STL的核心武器库在C标准模板库(STL)中&#xff0c;容器是存储和管理数据的核心组件。作为从1998年便纳入C标准的经典设计&#xff0c;STL容器历经二十余年发展已成为每个C开发者必须掌握的技能。不同于原始数组的固定大小和手动管理&#xff0c;STL容器…

作者头像 李华
网站建设 2026/9/12 7:58:18

Hunyuan3D-2 本地部署实操教程:图像转3D,5分钟出第一个模型

Hunyuan3D-2 本地部署实操教程&#xff1a;图像转3D&#xff0c;5分钟出第一个模型 【免费下载链接】Hunyuan3D-2 High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models. 项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2 …

作者头像 李华