Midscene.js 完整指南:视觉AI驱动的跨平台UI自动化测试

发布时间:2026/9/12 21:16:04

Midscene.js 完整指南:视觉AI驱动的跨平台UI自动化测试 Midscene.js 完整指南视觉AI驱动的跨平台UI自动化测试【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midsceneMidscene.js 是一款基于视觉AI的UI自动化测试框架GUI Agent for E2E Testing。它不依赖 DOM 结构和 CSS 选择器而是让多模态视觉语言模型就是能看懂截图的AI直接读屏幕截图完成元素定位、操作执行和结果验证一套 Agent API 同时覆盖 Web、Android、iOS、HarmonyOS 和桌面应用适合受够了选择器维护成本的开发者和测试工程师。一句话说清它凭什么给程序装上一双眼睛。人做 UI 测试的方式是看屏幕、找目标、动手点、再确认结果。Midscene.js 就是让 AI 按同样的方式工作——你只描述做什么和应该看到什么它自己看截图决定点哪里、算不算通过。视觉AI自动化能干什么Web、移动端、桌面端三个场景Web 浏览器自动化。配合 Playwright 使用把 AI 能力接到你现有的page对象上测试代码从写选择器变成写人话。下面这段代码在一个已有页面上完成搜索、筛选和价格断言import { PlaywrightAgent } from midscene/web/playwright; const agent new PlaywrightAgent(page); await agent.aiAct(Search for headphones, then filter the results to under $100); await agent.aiWaitFor(The filtered search results are displayed); await agent.aiAssert(Every product in the search results has a price below $100);移动端自动化。Android 侧通过 ADB 连上真机创建 Agent 的方式和 Web 基本一致动作和断言仍然是自然语言。这段代码拿到第一台连接的设备让它打开设置并核对版本号import { agentFromAdbDevice, getConnectedDevices } from midscene/android; const devices await getConnectedDevices(); const agent await agentFromAdbDevice(devices[0].udid); await agent.aiAct(打开设置应用进入关于手机页面); await agent.aiAssert(页面显示系统版本号);桌面端自动化。midscene/computer让 AI 直接操作本地桌面截屏、鼠标、键盘全部由它接管Electron 应用、原生客户端这类没有 Web DOM 的程序也能自动化。import { agentForComputer } from midscene/computer; const agent await agentForComputer(); await agent.aiAct(打开计算器); await agent.aiAssert(计算器窗口已显示);老办法 vs 新玩法选择器方案与视觉AI的差异维度选择器方案Midscene.js 视觉AI方案定位方式CSS / XPath依赖 DOM 结构读截图按外观和位置定位够不到的元素Canvas、跨域 iframe、纯图标按钮屏幕上可见即可识别平台覆盖Web、Android、iOS 各一套技术栈同一套 Agent API 跨 Web/Android/iOS/HarmonyOS/桌面脚本形态代码 选择器前端重构即批量失效自然语言描述界面改版不慌验证能力只能查 DOM 节点是否存在能断言看起来对不对颜色、高亮、布局说白了选择器方案赌的是DOM 结构稳定视觉AI方案赌的是人眼能看到什么AI 就能操作什么。前者省 token、跑得确定后者多花一次视觉推理换来对任意渲染方式的兼容。 5分钟跑起第一个视觉AI测试安装 SDK 和浏览器驱动npm install midscene/web playwright配置多模态模型三个环境变量MIDSCENE_MODEL_BASE_URL模型服务地址、MIDSCENE_MODEL_API_KEY密钥、MIDSCENE_MODEL_NAME模型名用new PlaywrightAgent(page)创建 Agent调一次aiAct(点击登录按钮)运行后打开自动生成的 HTML 报告逐步核对截图、元素位置和断言结果 进阶三招缓存加速、多模型切换与CI流水线集成缓存加速。设置MIDSCENE_CACHEtrue后重复执行的步骤会复用之前的定位结果同一条回归用例第二遍明显更快模型调用费用同步下降。多模型切换。改环境变量就能在 Qwen3.x、Doubao-Seed-2.1、GLM-4.6V、gemini-3.5-flash、UI-TARS 之间切换开源模型支持自建服务部署规划模型和视觉模型也可以分开配置按任务负载组合。CI 流水线集成。Midscene 走 Playwright / Puppeteer 的既有集成路径把 SDK 装进现有测试工程即可HTML 报告作为构建产物归档失败时截图、AI 决策过程、断言结论都查得到排查不用猜。上手资源与行动指引一句话总结Midscene.js 用视觉AI把维护选择器这件最耗人力的事从 UI 自动化测试里删掉了跨平台只写一套自然语言脚本。仓库GitHub 上的 web-infra-dev/midsceneMIT 协议可git clone后看示例工程文档源码apps/site/docsWeb SDKpackages/web-integrationAndroid SDKpackages/android【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/12 21:11:04

SSM+Vue游戏攻略网站项目深度解析:从分层架构到生产部署

简介:本资源是一套完整的基于SSM(SpringSpringMVCMyBatis)与Vue实现的游戏攻略网站毕业设计/课程设计项目,面向Java与前端初学者、高校计算机专业学生及前后端分离实践者,解决从需求分析、模块开发到部署上线的全流程学…

2026/9/12 21:11:04

热电联供微网中光热电站与储热系统协同优化方法

1. 项目概述热电联供型微网(Combined Heat and Power Microgrid, CHP)作为能源领域的重要发展方向,通过同时输出电能和热能,实现一次能源的梯级利用,综合效率可达90%以上。而基于多能互补的优化运行策略,则…

2026/9/12 22:21:08

CNN注意力机制详解:Matlab实现与调参实战

简介:基于注意力机制的卷积神经网络(CNN-attention)数据分类Matlab实现,面向计算机、电子信息工程、数学等专业学生,可用于课程设计、期末大作业与毕业设计,帮助掌握注意力机制与深度学习建模方法。资源共6…

2026/9/12 22:21:08

基于SwinTransformer与DCA注意力的面料多分类实战

简介:这是一份基于SwinTransformer与DCA注意力改进的5种基础面料多分类实战项目,面向希望系统掌握图像分类流程的PyTorch初学者与研究者。资源共1978个文件,含1969张jpg面料图像、4个Python脚本、3个pyc缓存文件、1份docx项目说明书及若干配置…

2026/9/12 22:21:08

iOS端PaddleOCR部署指南:选型、集成与性能调优

简介:面向iOS开发者的Paddle OCR移动端文字识别完整工程资源,解决在扫描文档、图片及现实场景中高效提取文字的需求。资源涵盖模型转换、Core ML集成、Swift/Objective-C识别代码及性能优化等全流程实现,适合需要低成本接入中文/英文识别能力…

2026/9/12 22:21:08

鲸鱼算法WOA优化GRU超参数:Matlab回归预测实战

简介:这套资源是针对多输入单输出数据回归预测场景的WOA-GRU完整Matlab实现,以鲸鱼算法优化门控循环单元的超参数,适合电气、经济、工程等领域的预测建模学习者与科研人员。程序已在Matlab 2020及以上版本环境设计,包含主优化程序…

2026/9/12 22:16:08

Servlet+JSP+JDBC房屋租赁系统实战解析

简介:本资源是一套完整的Java Web毕业设计实战项目——基于ServletJSPJDBC开发的房屋租赁管理系统,面向计算机专业本科生、Java初学者及毕设需求者,解决从零搭建企业级Web应用、理解MVC分层架构与数据库交互的核心实践问题。压缩包为ZIP格式&…

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/12 10:09:03

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码