| name | agent-browser |
| description | 自动化浏览器交互,用于网页测试、表单填写、截图和数据提取。当用户需要导航网站、与网页交互、填写表单、截图、测试网页应用或从网页中提取信息时使用。 |
使用 agent-browser 进行浏览器自动化
快速开始
agent-browser open <url>
agent-browser snapshot -i
agent-browser click @e1
agent-browser fill @e2 "text"
agent-browser close
核心工作流
- 导航:
agent-browser open <url>
- 快照:
agent-browser snapshot -i(返回带引用的元素,如 @e1、@e2)
- 使用快照中的引用进行交互
- 导航后或 DOM 发生重大变化时重新快照
命令
导航
agent-browser open <url>
agent-browser back
agent-browser forward
agent-browser reload
agent-browser close
快照(页面分析)
agent-browser snapshot
agent-browser snapshot -i
agent-browser snapshot -i -C
agent-browser snapshot -c
agent-browser snapshot -d 3
agent-browser snapshot -s "#main"
agent-browser snapshot -i -c -d 5
-C 标志适用于使用自定义可点击元素(div、span)而非标准按钮/链接的现代网页应用。
交互(使用快照中的 @ 引用)
agent-browser click @e1
agent-browser dblclick @e1
agent-browser focus @e1
agent-browser fill @e2 "text"
agent-browser type @e2 "text"
agent-browser keyboard type "text"
agent-browser keyboard inserttext "text"
agent-browser press Enter
agent-browser press Control+a
agent-browser keydown Shift
agent-browser keyup Shift
agent-browser hover @e1
agent-browser check @e1
agent-browser uncheck @e1
agent-browser select @e1 "value"
agent-browser scroll down 500
agent-browser scrollintoview @e1
agent-browser drag @e1 @e2
agent-browser upload @e1 file.pdf
获取信息
agent-browser get text @e1
agent-browser get html @e1
agent-browser get value @e1
agent-browser get attr @e1 href
agent-browser get title
agent-browser get url
agent-browser get count ".item"
agent-browser get box @e1
agent-browser get styles @e1
检查状态
agent-browser is visible @e1
agent-browser is enabled @e1
agent-browser is checked @e1
截图和 PDF
agent-browser screenshot
agent-browser screenshot path.png
agent-browser screenshot --full
agent-browser screenshot --annotate
agent-browser pdf output.pdf
带标注的截图会在可交互元素上叠加编号标签 [N]。每个标签对应引用 @eN,因此引用同时适用于视觉和文本工作流:
agent-browser screenshot --annotate ./page.png
agent-browser click @e2
视频录制
agent-browser record start ./demo.webm
agent-browser click @e1
agent-browser record stop
agent-browser record restart ./take2.webm
录制会创建新上下文,但会保留会话中的 cookies 和存储。
等待
agent-browser wait @e1
agent-browser wait 2000
agent-browser wait --text "Success"
agent-browser wait --url "**/dashboard"
agent-browser wait --load networkidle
agent-browser wait --fn "window.ready"
加载状态:load、domcontentloaded、networkidle
鼠标控制
agent-browser mouse move 100 200
agent-browser mouse down left
agent-browser mouse up left
agent-browser mouse wheel 100
语义定位器(引用的替代方案)
agent-browser find role button click --name "Submit"
agent-browser find text "Sign In" click
agent-browser find label "Email" fill "user@test.com"
agent-browser find placeholder "Search..." fill "query"
agent-browser find alt "Logo" click
agent-browser find title "Close" click
agent-browser find testid "submit-btn" click
agent-browser find first ".item" click
agent-browser find last ".item" click
agent-browser find nth 2 "a" text
操作:click、fill、type、hover、focus、check、uncheck、text
选项:--name <name>(按可访问名称过滤角色)、--exact(要求精确文本匹配)
浏览器设置
agent-browser set viewport 1920 1080
agent-browser set device "iPhone 14"
agent-browser set geo 37.7749 -122.4194
agent-browser set offline on
agent-browser set headers '{"X-Key":"v"}'
agent-browser set credentials user pass
agent-browser set media dark
Cookies 和存储
agent-browser cookies
agent-browser cookies set name value
agent-browser cookies clear
agent-browser storage local
agent-browser storage local key
agent-browser storage local set k v
agent-browser storage local clear
agent-browser storage session
网络
agent-browser network route <url>
agent-browser network route <url> --abort
agent-browser network route <url> --body '{}'
agent-browser network unroute [url]
agent-browser network requests
agent-browser network requests --filter api
标签页和窗口
agent-browser tab
agent-browser tab new [url]
agent-browser tab 2
agent-browser tab close
agent-browser window new
框架
agent-browser frame "#iframe"
agent-browser frame main
对话框
agent-browser dialog accept [text]
agent-browser dialog dismiss
对比(比较快照、截图、URL)
agent-browser diff snapshot
agent-browser diff snapshot --baseline before.txt
agent-browser diff snapshot --selector "#main" --compact
agent-browser diff screenshot --baseline before.png
agent-browser diff screenshot --baseline b.png -o d.png
agent-browser diff screenshot --baseline b.png -t 0.2
agent-browser diff url https://v1.com https://v2.com
agent-browser diff url https://v1.com https://v2.com --screenshot
agent-browser diff url https://v1.com https://v2.com --selector "#main"
JavaScript
agent-browser eval "document.title"
agent-browser eval -b "base64code"
agent-browser eval --stdin
调试和性能分析
agent-browser console
agent-browser console --clear
agent-browser errors
agent-browser errors --clear
agent-browser highlight @e1
agent-browser trace start
agent-browser trace stop trace.zip
agent-browser profiler start
agent-browser profiler stop profile.json
状态管理
agent-browser state save auth.json
agent-browser state load auth.json
agent-browser state list
agent-browser state show <file>
agent-browser state rename <old> <new>
agent-browser state clear [name]
agent-browser state clear --all
agent-browser state clean --older-than <days>
安装
agent-browser install
agent-browser install --with-deps
全局选项
| 选项 | 描述 |
|---|
--session <name> | 隔离的浏览器会话(AGENT_BROWSER_SESSION 环境变量) |
--session-name <name> | 自动保存/恢复会话状态(AGENT_BROWSER_SESSION_NAME 环境变量) |
--profile <path> | 持久化浏览器配置(AGENT_BROWSER_PROFILE 环境变量) |
--state <path> | 从 JSON 文件加载存储状态(AGENT_BROWSER_STATE 环境变量) |
--headers <json> | 作用于 URL 源的 HTTP 头 |
--executable-path <path> | 自定义浏览器二进制(AGENT_BROWSER_EXECUTABLE_PATH 环境变量) |
--extension <path> | 加载浏览器扩展(可重复;AGENT_BROWSER_EXTENSIONS 环境变量) |
--args <args> | 浏览器启动参数(AGENT_BROWSER_ARGS 环境变量) |
--user-agent <ua> | 自定义 User-Agent(AGENT_BROWSER_USER_AGENT 环境变量) |
--proxy <url> | 代理服务器(AGENT_BROWSER_PROXY 环境变量) |
--proxy-bypass <hosts> | 绕过代理的主机(AGENT_BROWSER_PROXY_BYPASS 环境变量) |
--ignore-https-errors | 忽略 HTTPS 证书错误 |
--allow-file-access | 允许 file:// URL 访问本地文件 |
-p, --provider <name> | 云浏览器提供商(AGENT_BROWSER_PROVIDER 环境变量) |
--device <name> | iOS 设备名称(AGENT_BROWSER_IOS_DEVICE 环境变量) |
--json | 机器可读的 JSON 输出 |
--full, -f | 整页截图 |
--annotate | 带编号标签的标注截图(AGENT_BROWSER_ANNOTATE 环境变量) |
--headed | 显示浏览器窗口(AGENT_BROWSER_HEADED 环境变量) |
--cdp <port|wss://url> | 通过 Chrome DevTools Protocol 连接 |
--auto-connect | 自动发现运行中的 Chrome(AGENT_BROWSER_AUTO_CONNECT 环境变量) |
--color-scheme <scheme> | 配色方案:dark、light、no-preference(AGENT_BROWSER_COLOR_SCHEME 环境变量) |
--download-path <path> | 默认下载目录(AGENT_BROWSER_DOWNLOAD_PATH 环境变量) |
--native | [实验性] 使用原生 Rust 守护进程(AGENT_BROWSER_NATIVE 环境变量) |
--config <path> | 自定义配置文件(AGENT_BROWSER_CONFIG 环境变量) |
--debug | 调试输出 |
安全选项
| 选项 | 描述 |
|---|
--content-boundaries | 在页面输出周围包裹边界标记(AGENT_BROWSER_CONTENT_BOUNDARIES 环境变量) |
--max-output <chars> | 将页面输出截断到 N 字符(AGENT_BROWSER_MAX_OUTPUT 环境变量) |
--allowed-domains <list> | 逗号分隔的允许域名模式(AGENT_BROWSER_ALLOWED_DOMAINS 环境变量) |
--action-policy <path> | 操作策略 JSON 文件路径(AGENT_BROWSER_ACTION_POLICY 环境变量) |
--confirm-actions <list> | 需要确认的操作类别(AGENT_BROWSER_CONFIRM_ACTIONS 环境变量) |
配置文件
创建 agent-browser.json 用于持久化默认配置(无需重复传递标志):
位置(从低到高优先级):
~/.agent-browser/config.json — 用户级默认
./agent-browser.json — 项目级覆盖
AGENT_BROWSER_* 环境变量
- CLI 标志覆盖一切
{
"headed": true,
"proxy": "http://localhost:8080",
"profile": "./browser-data",
"native": true
}
示例:表单提交
agent-browser open https://example.com/form
agent-browser snapshot -i
agent-browser fill @e1 "user@example.com"
agent-browser fill @e2 "password123"
agent-browser click @e3
agent-browser wait --load networkidle
agent-browser snapshot -i
示例:使用保存的状态进行认证
agent-browser open https://app.example.com/login
agent-browser snapshot -i
agent-browser fill @e1 "username"
agent-browser fill @e2 "password"
agent-browser click @e3
agent-browser wait --url "**/dashboard"
agent-browser state save auth.json
agent-browser state load auth.json
agent-browser open https://app.example.com/dashboard
基于头的认证(跳过登录流程)
agent-browser open api.example.com --headers '{"Authorization": "Bearer <token>"}'
agent-browser open other-site.com
agent-browser set headers '{"X-Custom-Header": "value"}'
认证保险库
echo "pass" | agent-browser auth save github --url https://github.com/login --username user --password-stdin
agent-browser auth login github
会话和持久化配置
会话(并行浏览器)
agent-browser --session test1 open site-a.com
agent-browser --session test2 open site-b.com
agent-browser session list
会话持久化(自动保存/恢复)
agent-browser --session-name twitter open twitter.com
持久化配置
持久化 cookies、localStorage、IndexedDB、服务工作线程、缓存、登录会话,跨浏览器重启保持。
agent-browser --profile ~/.myapp-profile open myapp.com
AGENT_BROWSER_PROFILE=~/.myapp-profile agent-browser open myapp.com
JSON 输出(用于解析)
添加 --json 获取机器可读输出:
agent-browser snapshot -i --json
agent-browser get text @e1 --json
本地文件
agent-browser --allow-file-access open file:///path/to/document.pdf
agent-browser --allow-file-access open file:///path/to/page.html
CDP 模式
agent-browser connect 9222
agent-browser --cdp 9222 snapshot
agent-browser --cdp "wss://browser-service.com/cdp?token=..." snapshot
agent-browser --auto-connect snapshot
云提供商
BROWSERBASE_API_KEY="key" BROWSERBASE_PROJECT_ID="id" agent-browser -p browserbase open example.com
BROWSER_USE_API_KEY="key" agent-browser -p browseruse open example.com
KERNEL_API_KEY="key" agent-browser -p kernel open example.com
iOS 模拟器
agent-browser device list
agent-browser -p ios --device "iPhone 16 Pro" open example.com
agent-browser -p ios snapshot -i
agent-browser -p ios tap @e1
agent-browser -p ios swipe up
agent-browser -p ios close
原生模式(实验性)
使用直接 CDP 的纯 Rust 守护进程 — 无需 Node.js/Playwright:
agent-browser --native open example.com
安装:bun add -g agent-browser && agent-browser install。运行 agent-browser --help 获取所有命令。仓库:https://github.com/vercel-labs/agent-browser