Midscene.js实战指南:如何用3步跑通一条自然语言驱动的E2E自动化流程

发布时间:2026/9/11 16:52:43

Midscene.js实战指南:如何用3步跑通一条自然语言驱动的E2E自动化流程 Midscene.js实战指南如何用3步跑通一条自然语言驱动的E2E自动化流程【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene你一定遇到过这种事页面改版挪了一个按钮精心维护的选择器集体失效测试脚本一跑就报错。Midscene.js 就是一个面向 E2E 测试的 GUI Agent它不读 DOM、不写选择器靠截图加一句自然语言就能操作界面。这篇指南不罗列功能只按你想完成什么任务来走装好、跑通、用好。它到底是什么给测试脚本装上一双眼睛Midscene.js 的工作方式一句话能说清把当前界面截图发给多模态模型你用自然语言描述要做什么模型在图里找到位置并执行。类比一下它就像带一个实习生做测试。你只需说在搜索框输入 Headphones 然后回车他自己找搜索框在哪不用你报第几行第几个元素。它覆盖 Web、Android、iOS、HarmonyOS 和桌面应用同一套 API 通吃。官方 Playground 里可以直接看运行效果三步快速开始第 1 步装依赖配模型。npm install midscene/web playwright playwright/test tsx export MIDSCENE_MODEL_API_KEYyour-api-key export MIDSCENE_MODEL_NAMEqwen3.7-plus export MIDSCENE_MODEL_FAMILYqwen3第 2 步写一个最小脚本demo.ts。核心就三行连上页面、描述任务、拿结果。import { chromium } from playwright; import { PlaywrightAgent } from midscene/web/playwright; const browser await chromium.launch({ headless: true }); const page await browser.newPage(); await page.goto(https://www.bing.com); const agent new PlaywrightAgent(page); // Agent 挂载到页面 await agent.aiAct(type Headphones in search box, hit Enter); await agent.aiWaitFor(there is at least one item on page); // aiQuery 直接返回结构化数据格式写在 prompt 里 const items await agent.aiQuery( {itemTitle: string, price: number}[], list items with prices ); console.log(items);第 3 步运行。npx tsx demo.ts浏览器里就能看到它看着页面干活。详细步骤见 Playwright 集成文档。三个高频场景从想法到落地场景一抓页面里的结构化数据。做法就是上面代码里aiQuery的用法——把想要的字段和类型写进 prompt模型返回可直接console.log、可直接入库的 JSON。关键点别问页面上有什么这种开放问题问我要哪几个字段结果才稳定。场景二不写代码做冒烟测试。很多团队只是想验证一条关键路径能走通为它搭一整个测试工程太重的。Midscene 支持纯 YAML 脚本page: url: https://www.bing.com tasks: - name: Search for weather flow: - ai: Search for todays weather - sleep: 3000 - name: Check results flow: - aiAssert: The results show weather information用 CLI 直接执行产品、测试同学不学 API 也能写。模板和字段说明在 YAML 脚本文档。场景三验证 App 里的真实流程。比如打开 App、搜商品、确认下单页出现。接上 Android 设备后Agent 的操作和 Web 端完全一样Playground 里还能实时看到手机画面关键点因为它只认截图原生控件、canvas、没有语义标签的图标按钮照样能操作这些恰好是选择器最够不着的地方。进阶技巧挑两个最常用的任务缓存taskCache同一个任务第一次执行时模型规划的步骤会被记下来之后相同输入直接复用计划省一次模型调用时间也省一截。开启前后的耗时对比可以看官方缓存文档里的实测图深度思考deepThink多步骤、有分支的复杂任务给aiAct传{ deepThink: true }让模型规划得更慢但更稳。简单点击没必要开开了反而慢。另外每次运行都会自动生成执行报告把每一步的截图、指令和结果串成时间线报告还能导出成视频方便发给不看代码的同事复核。❓ 常见问题现象aiAct报找不到元素步骤失败。原因元素此刻不在截图里——页面还没加载完、被弹窗挡住、或者不在当前视口。 解法在这一步前面加aiWaitFor(目标内容出现)或先把视口调大、等动画结束。现象同一步骤第一次成功再跑就时快时慢。原因每次都现场调模型规划网络波动和网络状态都会影响结果。 解法开启taskCache稳定步骤走缓存计划。细节见 缓存文档。现象启动直接报模型相关错误。原因环境变量缺项——MIDSCENE_MODEL_NAME、MIDSCENE_MODEL_FAMILY或 API Key 没配对。 解法对照 Playwright 集成文档 里的环境变量清单逐项核对。选一条你最常改的选择器用例把上面三步的代码里 URL 换掉十分钟就能看到它自己干活。下一步建议从 YAML 冒烟脚本入手把团队里每次都手动点一遍的路径先固化下来。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/11 16:52:43

无中介租房系统设计与实现:微信小程序+Spring Boot全栈实战

简介:面向计算机类专业毕业设计/课程设计场景,这套基于微信小程序与Java后端的无中介租房系统,覆盖管理员、房东、租客三类角色,实现房屋信息发布、租赁合同、租金管理、交流发帖等核心功能,可用于快速搭建完整项目并理…

2026/9/11 16:52:43

scrcpy 投屏:3 步把 Android 手机变成电脑上的可控副屏

scrcpy 投屏:3 步把 Android 手机变成电脑上的可控副屏 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy scrcpy 是一款免费开源的 Android 投屏工具:把手机屏幕&…

2026/9/11 18:13:13

第33篇-架构评估(二):ATAM 方法与评估实战

【软考系统架构设计师全链路通关实战】第 33 篇:架构评估(二):ATAM 方法与评估实战 本系列定位:以软考系统架构设计师(高级)考试为主线,语言无关的架构方法论视角,覆盖官…

2026/9/11 18:13:13

深度迁移学习水质预测算法源码解析与实战指南

简介:基于深度迁移学习的水质预测研究算法源码,是一份面向计算机、数学、电子信息等专业课程设计、期末大作业及毕设项目的完整工程代码。项目以水质预测为应用场景,覆盖数据加载、时间特征生成、模型构建、迁移学习训练和结果评估等环节&…

2026/9/11 18:13:13

第34篇-CBAM 成本效益分析与架构脆弱性

【软考系统架构设计师全链路通关实战】第 34 篇:CBAM 成本效益分析与架构脆弱性 本系列定位:以软考系统架构设计师(高级)考试为主线,语言无关的架构方法论视角,覆盖官方教程(第二版)…

2026/9/11 18:08:12

【Python 基础】FastAPI ORM 操作MySql 实战使用详解

目录 一、前言 二、FastAPI ORM介绍 2.1 什么是 ORM 2.2 ORM 的优势 2.3 ORM 常用框架 2.4 ORM的使用流程 三、FastAPI ORM 使用 3.1 前置准备 3.1.1 安装依赖包 3.2 ORM 基本使用 3.2.1 创建数据库 3.2.2 创建会话工厂 3.2.3 新增数据 3.2.4 修改数据 3.2.5 查询…

2026/9/10 16:39:38

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

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

2026/9/10 11:16:38

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

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

2026/9/9 16:31:09

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

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

2026/9/10 12:32:02

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

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

2026/9/10 15:19:50

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

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

2026/9/10 15:49:53

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

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

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

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

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