AI测试 AI 赋能测试实践 03——深度拆解 Agent Browser——Playwright 的下一代,AI 原生的浏览器交互革命

EternalRights · 2026年03月05日 · 最后由 EternalRights 回复于 2026年03月21日 · 10438 次阅读

前言

        回顾 Web 自动化的发展史:早期的 Selenium,通过 WebDriver 协议驱动浏览器,虽然实现了自动化,但是充满了隐式等待与不稳定的 Flakiness,它是为机器设计的,人只是勉强在用。

        后来,PlayWright 横空出世,它带来对人类友好的革命:自动等待、Trace Viewer、精准的定位器、它大幅提高了编写测试脚本的体验。

        而现在,来到了 AI 基建时代。人类编写测试脚本的任务交接给了 Agent(智能体)手中,这个时候如果还使用旧时代的 PlayWright 进行代码的编写,那么就会面临 token 成本剧增 + Context 爆炸的挑战。所以,由 Vercel Labs 创造的 Agent Browser 应运而生——它不是 Playwright 的简单封装,而是 Playwright 的下一代演进。它剥离了人类阅读代码的冗余,提供了 AI 原生的交互协议,专门为大模型的推理、规划和工具调用而设计。如果说 Playwright 是 “开发者的天降神兵”,那么 Agent Browser 就是 “AI Agent 的大脑皮层”。

        今天,笔者就带各位拆解一下这件 AI 时代的神兵利器——Agent Browser。


Agent Browser vs Playwright:核心区别

Agent Browser 不是 Playwright 的替代品,而是 AI Agent 的交互层。Playwright 是底层引擎,Agent Browser 是 AI 与浏览器的"翻译官"。

特性 Playwright (传统) Agent Browser (AI 时代) 为什么重要(转型价值)
交互方式 需要编写 JS 脚本
page.click('#submit')
命令行直接操作
agent-browser click @e2
无需编码,AI 直接生成指令
元素定位 依赖 CSS 选择器
(易受页面变动影响)
智能 Ref 系统
@e1, @e2
100% 稳定,页面改版无需重写测试
输出格式 原始 DOM
(AI 难以解析)
AI 友好树状结构
(含 Ref 标签)
AI 能直接解析并生成操作指令
执行速度 500ms-2s/操作 <50ms/操作
(Rust 原生优化)
测试速度提升 10 倍,CI/CD 加速
AI 集成 需额外封装 原生支持 AI 工作流
snapshotrefs
直接用 AI 写测试,无需转换

快速上手

安装

# 全局安装(推荐,性能最佳)
npm install -g agent-browser
agent-browser install  # 下载Chromium(仅需1次)

# 无需安装(试用)
npx agent-browser install
npx agent-browser open example.com

AI 测试开发核心工作流

步骤一:导航并获取页面快照

为什么比 Playwright 强:Playwright 输出的是 HTML,AI 需要额外解析;Agent Browser 直接输出带 Ref 的树状结构,AI 能直接知道"点击 e4"。

agent-browser open https://login.example.com
agent-browser snapshot -i --json  # 重点:-i(仅交互元素) + --json(AI友好格式)
```py

输出示例AI能直接解析):

```json
{
  "success": true,
  "data": {
    "snapshot": "e1:heading 'Login', e2:input 'Email', e3:input 'Password', e4:button 'Sign In'",
    "refs": {
      "e1": {"role": "heading", "name": "Login"},
      "e2": {"role": "textbox", "placeholder": "Email"},
      "e3": {"role": "textbox", "type": "password"},
      "e4": {"role": "button", "name": "Sign In"}
    }
  }
}

步骤二:AI 生成操作指令(无需写代码)

AI 提示词示例:
"当前页面有登录表单,Ref e2 是邮箱输入框,e3 是密码框,e4 是登录按钮。请填写邮箱 mailto:test@example.com,密码 123456,然后点击登录。"

步骤三:执行操作(AI 直接操作)

agent-browser fill @e2 "test@example.com"  # 填写邮箱
agent-browser fill @e3 "123456"           # 填写密码
agent-browser click @e4                    # 点击登录

步骤四:验证结果(自动重试拍照)

agent-browser snapshot -i --json  # 检查登录后页面

与 Cloude Code 的深度集成

Cloude Code 是 AI 编程助手(类似 GitHub Copilot),安装 Agent Browser 技能后,它能原生理解 Agent Browser,让你用自然语言写测试。

集成步骤

# 1. 安装Agent Browser技能
npx skills add vercel-labs/agent-browser

# 2. 在Cloude Code中,输入自然语言提示
"打开登录页,填写邮箱test@example.com,点击登录按钮"

# 3. Cloude Code自动生成操作指令
agent-browser open https://login.example.com
agent-browser snapshot -i --json
agent-browser fill @e2 "test@example.com"
agent-browser click @e4

高级功能:安全 & 云化

会话状态持久化(告别重复登录)

# 第一次登录(保存状态)
agent-browser --session-name myapp open https://myapp.com/login
agent-browser fill @e2 "user" && agent-browser fill @e3 "pass" && agent-browser click @e4

# 后续直接使用(无需再登录)
agent-browser --session-name myapp open https://myapp.com/dashboard

云化部署(Serverless 环境必备)

# 用Kernel云服务(免费额度可用)
export AGENT_BROWSER_PROVIDER=kernel
export KERNEL_API_KEY="your-api-key"
agent-browser open https://myapp.com

安全增强(企业级必备)

# 1. 限制可访问域名(防爬虫)
agent-browser --allowed-domains "myapp.com,*.cdn.com" open ...

# 2. 用内容边界标记(防AI误操作)
agent-browser --content-boundaries open example.com

# 3. 启用动作确认(关键操作需人工确认)
agent-browser --confirm-actions click,fill open example.com

后记

         注意啦,这个 Agent Browser 完全是开发给 Agent 使用的,我们作为测试人员只需要了解 Agent Browser 的大致语法即可,而后可完全交付给 Agent,总而言之这项新技术的学习难度相比于 Web 自动化前几代常用的框架而言断崖式下跌,而且看完本篇博客完全可以快速上手,直接和 Agent 一起提高自动化测试效率,来进一步为 AI 基建提效。

         官方仓库: https://github.com/vercel-labs/agent-browser

         完整文档: https://agent-browser.vercel.app

共收到 12 条回复 时间 点赞

有移动端 app 自动测试 AI 结合的好的实践吗?

handong 回复

移动端 app 领域截至目前,尚未有诸如 Agent Browser 的明星级项目,只能先尝试 Appium 的 Agent 化。

还挺好用的。就是绕不过微信公众号的反爬。

仅楼主可见

你好,请教一下,我在 Windows 下使用 agent-browser 的时候出现了一个问题,在使用 trae open 页面之后的虚拟环境下所有 fill/click 操作均会超时,但是我在外部的 cmd 命令行中使用并不会出现这个情况,这个情况有遇到过吗

chiguanong 回复

一般来说 Trae 有自己的一套终端,你提到的 Trae 的 “虚拟环境” 中运行 agent-browser 的时候,这个命令行工具的网络请求或进程启动或文件访问被 Trae 的环境 “拦截” 了,导致超时。
你先排查一波问题,看看是在 Trae 还是在 agent-browser:
首先,你应该尝试在 Trae 中打开外部终端,测试 agent-browser 是否可行,如可行那么就是 Trae 环境问题,否则还需要继续排查

chiguanong 回复

如果是 Trae 环境问题,检查一下你 Trae 的代理和网络设置;或者是插件占用、冲突问题。
如果是 agent-browser 的问题,可能就是没有下载好,清理一下 agent-browser 的缓存,重新安装。

请教:具体的用例怎么来管理呢?通过 skill 方式,将对应的用例封装,然后批量让 agent-browser 去执行?

感谢分享,最近刚好在研究

Ty 回复

可以把测试用例写到 md 格式的文件中,直接作为 Prompt 的一环喂给 LLM,LLM 再调用 Agent Browser 去执行即可;

而你提到的 skill 方式本质上是针对于 LLM 的,skill = md + py,这个时候是让 LLM 去执行,而 LLM 通过 Agent Browser 去执行,你这样效率确实更高,提前封装好 skill 的形式是现在的主流写法,但是需要注意的是你 skill 包里面需要包含已经写好的 Agent Browser 脚本,其实这个时候不如前面的人类语言 md 格式便捷,前者是对人类友好,后者是对 AI 友好,后者唯一的优点就是再一次降低了 Token 的消耗,个人推荐前者。

运行 agent browser 很慢可以怎样优化,简单的用例要运行几分钟,登录 -- 点击菜单

无人机 回复

几分钟确实太慢了,大概率不是 agent browser 本身的执行慢 ( Rust 优化理论上 <50ms/步),而是冷启动 + AI 推理 + 网络加载 的多重叠加导致的。针对 “登录 - 点击菜单” 这种固定流程,必须通过封装来 bypass 掉浏览器的实时交互开销。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册