前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Midscene.js - AI驱动,轻松实现UI自动化

Midscene.js - AI驱动,轻松实现UI自动化

作者头像
wangmcn
发布于 2025-02-25 02:31:21
发布于 2025-02-25 02:31:21
1.3K12
代码可运行
举报
文章被收录于专栏:AllTests软件测试AllTests软件测试
运行总次数:2
代码可运行

1、前言

截至目前,自然语言驱动的UI自动化测试技术已实现‌效率、协作与适应性三重突破‌:

  • ‌技术层面‌:多模态AI模型(视觉+语义)与边缘计算结合,精准解析动态交互(如AR/VR手势、全球化多语言布局),实现复杂场景覆盖。
  • ‌行业价值‌:在金融合规、医疗审计等领域自动化验证高危流程,误报率降低60%,测试用例生成效率提升12倍。
  • ‌协作模式‌:非技术人员可通过自然语言直接编写脚本,跨职能团队共享“业务语言”降低沟通成本,AI自愈机制使脚本维护成本减少70%。

该技术正从“辅助工具”进化为‌质量保障核心决策中枢‌,推动软件交付从“人适应工具”到“工具理解意图”的范式重构。

本篇将介绍一款,也是只需用自然语言描述就可实现完成自动化测试操作的工具 - Midscene.js。

2、简介

Midscene.js让人工智能成为你的浏览器操作助手,只需用自然语言描述你想做的事情,它就会帮助你操作网页、验证内容以及提取数据。无论你是想快速体验一下,还是进行深度开发,都能轻松上手。

功能特点:

  • 自然语言交互:只需描述你的目标和步骤,Midscene就会为你规划并操作用户界面。
  • Chrome扩展程序体验:通过Chrome扩展程序即可立即开始体验,无需编写代码。
  • Puppeteer/Playwright集成:支持集成Puppeteer和Playwright,让你能够将人工智能功能与这些强大的自动化工具相结合,轻松实现自动化操作。
  • 支持开源模型:支持对UI-TARS和Qwen2.5-VL进行私有化部署,在用户界面自动化场景中,它们的表现优于GPT-4o和Claude等闭源模型,同时能更好地保护数据安全
  • 支持通用模型:支持GPT-4o和Claude等通用大模型,适应各种场景需求。
  • 用于调试的可视化报告:通过我们的测试报告和演练场,你可以轻松理解、重放和调试整个过程。
  • 支持缓存:首次通过人工智能执行任务时,任务会被缓存,后续执行相同任务时,执行效率将大幅提高。
  • 完全开源:体验全新的自动化开发感受,尽情享受吧!
  • 理解用户界面、JSON格式响应:你可以指定数据格式要求,并接收JSON格式的响应内容。
  • 直观的断言:用自然语言表达你的断言,人工智能会理解并处理这些断言。
  • 与Javascript集成:你可以永远相信Javascript。

模型选择:

Midscene.js推荐使用的三种模型是GPT-4o,Qwen2.5-VL(千问)和UI-TARS。它们的的主要特性是:

  • GPT-4o:表现比较平衡,需要使用较多token。
  • 千问Qwen-2.5-VL:开源的VL模型,几乎与GPT-4o表现相同,使用阿里云部署的版本时成本很低。
  • UI-TARS:开源的端到端GUI代理模型,擅长执行目标驱动的任务,有错误纠正能力。

你也可以使用其他模型。

Midscene提供了三种关键方法:

交互(.ai, .aiAction)、提取(.aiQuery)、断言(.aiAssert)。

  • 交互:用 .ai 方法描述步骤并执行交互。
  • 提取:用 .aiQuery 从UI中“理解”并提取数据,返回值是JSON格式,你可以尽情描述想要的数据结构
  • 断言:用 .aiAssert 来执行断言。

官网地址:

https://midscenejs.com/

3、快速上手

一、通过Chrome插件快速体验

通过使用Midscene.js的Chrome插件,你可以快速在任意网页上体验Midscene的主要功能,而无需编写任何代码。

1、安装:

前往Chrome扩展商店安装Midscene.js插件:

https://chromewebstore.google.com/detail/midscene/gbldofcpkknbggpkmbdaefngejllnief

或者联系作者,获取离线Midscene.js插件。

2、配置:

安装Midscene.js插件后,需要设置环境变量(接入的模型和API KEY)。

本文示例作者使用火山云的豆包doubao-vision-pro-32k模型。

调用前需要配置推理点:

https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint

在推理点界面中,寻找一个如 ep-202... 形式的接入点ID 作为模型名称。

配置环境变量完成。

配置信息:

export OPENAI_BASE_URL="https://ark.cn-beijing.volces.com/api/v3"

export OPENAI_API_KEY="..."

export MIDSCENE_MODEL_NAME="ep-202....."

3、开始体验:

打开一个购物网站。

输入执行步骤“将书包和$49.99的衣服添加到购物车里,并进入到购物车里进行查看”。

根据想提取的信息,来获取JSON格式的返回值。

获取断言格式。

实际网页已经跳转到购物车里。

回放操作和下载报告文件。

打开可视化报告。

二、使用YAML格式的自动化脚本

使用官方的示例项目

https://github.com/web-infra-dev/midscene-example/tree/main/yaml-scripts-demo

1、安装:

确保已安装Node.js,全局安装@midscene/cli。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm i -g @midscene/cli

2、配置:

配置OpenAI API KEY。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 更新为你自己的Key
export OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"

或使用.env文件存储配置,Midscene命令行工具在运行yaml脚本时会自动加载它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
OPENAI_API_KEY="sk-abcdefghijklmnopqrstuvwxyz"

本例作者继续使用火山云的豆包doubao-vision-pro-32k模型。

3、.yaml文件结构:

在.yaml文件中,有两个部分:target和tasks。

target部分定义了任务的基本信息。

代码语言:javascript
代码运行次数:1
运行
AI代码解释
复制
target:
  # 访问的 URL,必填。如果提供了 `serve` 参数,则提供相对路径
  url: <url>

  # 在本地路径下启动一个静态服务,可选
  serve: <root-directory>

  # 浏览器 UA,可选
  userAgent: <ua>

  # 浏览器视口宽度,可选,默认 1280
  viewportWidth: <width>

  # 浏览器视口高度,可选,默认 960
  viewportHeight: <height>

  # 浏览器设备像素比,可选,默认 1
  deviceScaleFactor: <scale>

  # JSON 格式的浏览器 Cookie 文件路径,可选
  cookie: <path-to-cookie-file>

  # 等待网络空闲的策略,可选
  waitForNetworkIdle:
    # 等待超时时间,可选,默认 10000ms
    timeout: <ms>
    # 是否在等待超时后继续,可选,默认 true
    continueOnNetworkIdleError: <boolean>

  # 输出 aiQuery 结果的 JSON 文件路径,可选
  output: <path-to-output-file>

  # 是否限制页面在当前 tab 打开,可选,默认 true
  forceSameTabNavigation: <boolean>

  # 桥接模式,可选,默认 false,可以为 'newTabWithUrl''currentTab'。更多详情请参阅后文
  bridgeMode: false | 'newTabWithUrl' | 'currentTab'

tasks部分是一个数组,定义了脚本执行的步骤。记得在每个步骤前添加 - 符号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tasks:
  - name: <name>
    continueOnError: <boolean> # 可选,错误时是否继续执行下一个任务,默认 false
    flow:
      # 执行一个交互,`ai``aiAction` 的简写方式
      - ai: <prompt>

      # 执行一个交互
      - aiAction: <prompt>

      # 执行一个断言
      - aiAssert: <prompt>

      # 执行一个查询,返回一个 JSON 对象
      - aiQuery: <prompt> # 记得在提示词中描述输出结果的格式
        name: <name> # 查询结果在 JSON 输出中的 key
        
      # 等待某个条件满足,并设置超时时间(ms,可选,默认 30000)
      - aiWaitFor: <prompt>
        timeout: <ms>

      # 等待一定时间
      - sleep: <ms>

  - name: <name>
    flow:
      # ...

4、示例脚本:

示例项目总共有4个脚本。

extract-github-status.yaml,从github状态页面提取状态信息。

local-static-server.yml,将public文件夹用作静态服务器,并测试index.html文件。

sauce-demo.yaml,登录到sauce demo,将项目信息提取到json文件中,并断言“sauce Labs Fleece夹克”的价格。

search-headphone-on-ebay.yaml,模拟移动设备,在ebay上搜索耳机,将商品信息提取到json文件中,并断言购物车图标。

5、运行脚本:

代码语言:javascript
代码运行次数:1
运行
AI代码解释
复制
# 运行所有脚本:
midscene ./midscene-scripts/

# 运行单个脚本:
midscene ./midscene-scripts/sauce-demo.yaml

# 运行在有界面模式下,使用 --headed 选项:
midscene ./midscene-scripts/sauce-demo.yaml --headed

# 运行在有界面模式下,并在结束后保持浏览器窗口打开,使用 --keep-window 选项:
midscene ./midscene-scripts/sauce-demo.yaml --keep-window

6、可视化报告:

extract-github-status脚本报告。

local-static-server脚本报告。

sauce-demo脚本报告。

search-headphone-on-ebay脚本报告。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
求离线Midscene.js插件
求离线Midscene.js插件
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
在软件开发测试领域,UI自动化测试一直是我们的“心头大患”。传统测试工具依赖繁琐的元素定位(如CSS选择器、XPath),一旦页面结构变化,脚本就可能失效;复杂交互场景(如动态加载、多步骤验证)需要编写大量代码,维护成本高昂;而数据抓取、性能监控等场景更是让测试人员苦不堪言。
测试开发技术
2025/04/18
8500
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
又被AI淘汰了!一句话生成自动化操作
现在我们只需要通过人类的语言也就是自然语言告诉AI,帮我发一条微博,采集周杰伦演唱会的信息,并且写入到Google Docs中,AI就会进行类似RPA的操作,在浏览器中点击、输入、提取数据,甚至生成可视化报告复盘每一步操作,不需要我们写代码,也不需要一步步配置PRA,只需要一句话就可以实现,这就是Midscene.js
小白的大数据之旅
2025/04/19
1240
又被AI淘汰了!一句话生成自动化操作
推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!
随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂。为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环。然而,传统的UI自动化测试工具往往存在学习成本高、维护困难等问题。特别是UI 自动化脚本里往往到处都是选择器,比如 #ids、data-test、.selectors。在需要重构的时候,这可能会让人感到非常头疼。
测试开发技术
2025/02/25
7450
推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!
使用 ByteDance 的 UI-TARS Desktop 探索 AI 驱动的 GUI 自动化新前沿
随着人工智能技术的快速发展,AI 正在从单纯的文本生成和图像识别迈向更复杂的交互场景。ByteDance 近期推出的 UI-TARS Desktop(基于其强大的 UI-TARS 视觉-语言模型)为我们展示了一种全新的可能性:通过自然语言控制计算机,实现图形用户界面(GUI)的智能化自动化。本文将围绕 GitHub 上开源的 UI-TARS Desktop 项目,探讨其技术亮点、应用场景以及如何快速上手体验这一前沿工具。
码事漫谈
2025/03/24
1.3K0
使用 ByteDance 的 UI-TARS Desktop 探索 AI 驱动的 GUI 自动化新前沿
字节开源,让 AI 给你写 UI 自动化测试,更愉悦的 UI 自动化体验
Midscene.js 是一个由 AI 驱动的浏览器自动化 SDK,旨在通过 Chrome 扩展、JavaScript 和 YAML 脚本实现自动化操作。这个项目的目标是简化用户界面控制、数据提取和断言操作,使开发者能够以自然语言描述操作步骤,从而实现自动化。
大侠之运维
2025/01/17
6640
Browser Use - 让AI能够控制你的浏览器
在科技飞速发展的当下,人工智能(AI)已经渗透到我们生活的方方面面,而AI智能体与浏览器的连接,正逐渐成为互联网发展的全新趋势,引发了大众对上网体验变革的无限期待。这种创新的融合,就像是为传统浏览器插上了智能的翅膀,将为我们带来前所未有的互联网交互感受。
wangmcn
2025/03/18
6891
Browser Use - 让AI能够控制你的浏览器
AI浏览器自动化实战
短短几个月内,Browser use 已在 GitHub 上获得超过 5 万颗 star:
程序员NEO
2025/04/16
5700
AI浏览器自动化实战
AI 工具推荐之 Agent TARS:字节跳动开源的多模态AI智能体
在人工智能技术迅猛发展的当下,字节跳动推出了一款名为Agent TARS的开源多模态AI智能体,迅速引起了业界和学术界的广泛关注。作为一款基于UI-TARS模型的创新工具,Agent TARS旨在通过自然语言指令实现对计算机的自动化控制,尤其是在图形用户界面(GUI)交互中表现出色。它的开源性质不仅降低了技术应用的门槛,还为开发者提供了广阔的定制空间,推动了AI技术在自动化、用户体验提升以及多领域融合中的发展。
AI.NET 极客圈
2025/04/11
1.2K0
AI 工具推荐之 Agent TARS:字节跳动开源的多模态AI智能体
每周AI论文速递(250120-250124)
我们探索了一种进化搜索策略,用于扩展大语言模型中的推理计算时间。我们提出的方法,Mind Evolution,利用语言模型生成、重组和优化候选响应。该方法在解决方案评估器可用时,避免了形式化底层推理问题的需求。在控制推理成本的前提下,我们发现 Mind Evolution 在自然语言规划任务中显著优于其他推理策略,如 Best-of-N 和 Sequential Revision。在 TravelPlanner 和 Natural Plan 基准测试中,Mind Evolution 使用 Gemini 1.5 Pro 解决了超过 98% 的问题实例,且无需使用形式化求解器。
叶子的技术碎碎念
2025/04/08
1040
每周AI论文速递(250120-250124)
OpenAI API Key 获取与 GPT-image-1 图像生成 API 开发指南及代码示例
OpenAI 近期宣布正式发布其最新的图像生成 API,模型标识为 gpt-image-1。此举标志着一个重要的里程碑,将先前在 ChatGPT 中展示并广受欢迎、由 GPT-4o 模型驱动的先进图像生成能力,首次以编程方式提供给全球的开发者和企业 。这一发布被视为人工智能领域,特别是多模态 AI 应用发展中的关键一步,它使得将高保真、高灵活性的图像生成功能直接集成到各种工具、平台和应用程序中成为可能 。
网名重要么
2025/04/25
7230
OpenAI API Key 获取与 GPT-image-1 图像生成 API 开发指南及代码示例
大模型与自动化:让AI成为你的全能助手
在数字化飞速发展的今天,人工智能(AI)已经成为我们生活中不可或缺的一部分。其中,大模型技术的突破为自动化领域带来了前所未有的机遇,让AI从简单的工具转变为真正的全能助手。本文将深入探讨大模型在自动化中的应用,结合实际代码实例,展示如何利用大模型技术提升自动化效率。
江南清风起
2025/03/22
1830
字节版Operator抢跑OpenAI? 直接免费开源, 网友:怒省200美元!
1 月 24 日凌晨 2 点,OpenAI 面向月供 200 美元的 ChatGPT Pro 用户发布了自家的 Computer Use 智能体:Operator。
机器之心
2025/02/03
3610
字节版Operator抢跑OpenAI? 直接免费开源, 网友:怒省200美元!
SeleniumBase - 多合一浏览器自动化框架
在自动化测试的技术浪潮中,Selenium以其开源、跨平台、多语言兼容的特性,长期占据着重要地位,为无数项目的质量保障立下汗马功劳。然而,随着敏捷开发和DevOps的深入推进,测试需求变得愈发复杂,不仅要应对频繁的迭代,还要处理动态页面、复杂交互以及多样化的测试场景。传统Selenium测试中,代码冗余、配置繁琐、断言单一等问题逐渐成为测试效率提升的阻碍。
wangmcn
2025/05/12
3500
SeleniumBase - 多合一浏览器自动化框架
基于Fuzzing和ChatGPT结合的AI自动化测试实践
有赞目前,结合insight接口自动化平台、horizons用例管理平台、引流回放平台、页面比对工具、数据工厂等,在研发全流程中,已经沉淀了对应的质量保障的实践经验,并在逐渐的进化中。
有赞coder
2023/11/09
3.6K1
基于Fuzzing和ChatGPT结合的AI自动化测试实践
利用 LLM 自动分类Gmail邮件汇总
作者:matrix 被围观: 14 次 发布时间:2025-04-30 分类:零零星星 | 无评论 »
HHTjim 部落格
2025/05/01
710
利用 LLM 自动分类Gmail邮件汇总
国内 OpenAI API Key 获取与代码调用实战教程:从注册到 API 调用 (附 Python 代码)
OpenAI 正凭借 GPT、DALL-E 等先进模型驱动全球 AI 创新浪潮。其 API 为开发者和企业提供了强大的 AI 能力集成通道,解锁前所未有的应用场景,从智能聊天到复杂数据分析。访问这些能力的核心是 OpenAI API Key——既是身份凭证,也是资源管理和安全的关键。然而,安全高效地获取、管理和使用 API Key 充满挑战。本指南旨在提供全面深入的技术指导,系统梳理OpenAI API Key 的获取、类型、计费、安全及管理策略,助您从入门到精通,安全高效地驾驭 OpenAI 的强大力量。
网名重要么
2025/04/30
1.5K0
AIGC:不用写代码也能输出自动化报表
报告的原始信息,散落在多个系统且有一定技术门槛,一个报告的人力投入约为 1人/天;但是这份报告对于项目成功,属于必要不充分条件,所以投入产出比较低。
AIOPS
2023/09/05
1.4K2
AIGC 办公自动化:智能邮件回复助手完整教程
在日常办公中,电子邮件是最常见的沟通方式之一。然而,频繁地回复类似邮件不仅耗时,还容易产生疲劳。人工智能生成内容(AIGC)技术可以极大地提高邮件处理效率,帮助我们自动生成符合业务需求的邮件回复。
IT蜗壳-Tango
2025/03/26
1590
AutoMouser - 单次AI调用铸就高效自动化脚本
现如今AI与自动化操作的相结合为我们带来了前所未有的便利。通过AI录制自动化操作并生成自动化脚本,正逐渐成为众多领域提高工作效率、降低成本的重要手段。
wangmcn
2025/05/19
1560
AutoMouser - 单次AI调用铸就高效自动化脚本
直观易用的大模型开发框架LangChain,你会了没?
目前LangChain框架在集团大模型接入手册中的学习案例有限,为了让大家可以快速系统地了解LangChain大模型框架并开发,产出此文章。本文章包含了LangChain的简介、基本组件和可跑的代码案例(包含Embedding、Completion、Chat三种功能模型声明)。
京东技术
2024/04/18
8280
直观易用的大模型开发框架LangChain,你会了没?
推荐阅读
相关推荐
惊!Midscene.js:一款AI 驱动的 UI 自动化测试利器,小白也能秒上手!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验