用途
agent-browser 是一个 CLI 优先的无头 CDP 浏览器自动化工具,不使用浏览器扩展,也不依赖像素级截图。它适合脚本化网页工作流、适合 CI 的浏览器测试,以及希望用 shell 命令而非 GUI 交互的基于会话的抓取场景。
主要能力
- 导航:open(别名 goto、navigate)、back、forward、reload、close(别名 quit、exit)、connect(通过 CDP 端口连接)。open 支持 https://、http://、file://、about:、data://,未提供协议时自动补全 https://。
- 快照分析:snapshot 可输出完整无障碍树,-i 仅交互元素(推荐),-c 紧凑输出,-d 限制深度,-s 按 CSS 选择器限定范围。
- 交互:click、dblclick、focus、fill(清空后输入)、type(不清空输入)、press(按键,别名 key)、keydown、keyup、hover、check、uncheck、select(单选或多选)、scroll、scrollintoview(别名 scrollinto)、drag、upload。交互使用快照返回的 @refs。
- 获取信息:get text、get html、get value、get attr、get title、get url、get count、get box、get styles。
- 状态检查:is visible、is enabled、is checked。
- 截图与 PDF:screenshot 支持视口截图、全页截图(--full)、指定元素截图,可保存到文件或自动保存到 tmp;pdf 可保存为 PDF。注意 v0.9.1 中 screenshot 要求第一个位置参数为 CSS 选择器,视口截图使用 "body",省略选择器会报 Validation error。
- 视频录制:record start、record stop、record restart。录制会创建新上下文但保留会话的 Cookie/存储;未提供 URL 时自动返回当前页面。建议先探索再开始录制以获得流畅演示。
- 等待:wait 支持等待元素、毫秒数、文本(--text/-t)、URL 模式(--url/-u)、网络空闲(--load networkidle/-l)、JS 条件(--fn/-f)。
- 鼠标控制:mouse move、mouse down、mouse up、mouse wheel。
- 语义定位器:find 支持 role、text(可 --exact)、label、placeholder、alt、title、testid、first、last、nth。
- 浏览器设置:set viewport、set device、set geo(别名 geolocation)、set offline、set headers、set credentials(别名 auth)、set media(可组合 dark/light 与 reduced-motion)。
- Cookie 与存储:cookies(获取/设置/清除)、storage local(获取全部/获取指定键/设置/清除)。
- 网络:network route(拦截、--abort 阻断、--body 模拟响应)、network unroute、network requests(可 --filter 过滤)。
- 标签页与窗口:tab(列出/新建/切换/关闭)、window new。
- iframe:frame 切换,frame main 返回主框架。
- 对话框:dialog accept、dialog dismiss。
- JavaScript:eval 执行 JS。
使用方式
快速开始:
agent-browser open <url> # 导航到页面
agent-browser snapshot -i # 获取带 refs 的交互元素
agent-browser click @e1 # 按 ref 点击元素
agent-browser fill @e2 "text" # 按 ref 填写输入
agent-browser close # 关闭浏览器
核心工作流:导航 → 快照(返回 @e1、@e2 等 refs)→ 使用快照中的 refs 交互 → 导航或 DOM 重大变化后重新快照。
全局选项:--session(隔离会话)、--json(JSON 输出便于解析)、--headed(显示浏览器窗口)、--full(全页截图)、--cdp(通过 CDP 连接)、-p/--provider(云浏览器提供商)、--proxy(代理服务器)、--headers(限定到 URL 源的 HTTP 头)、--executable-path(自定义浏览器可执行文件)、--extension(加载扩展,可重复)、--help、--version。
代理支持示例:
agent-browser --proxy http://proxy.com:8080 open example.com
agent-browser --proxy http://user:pass@proxy.com:8080 open example.com
agent-browser --proxy socks5://proxy.com:1080 open example.com
环境变量:AGENT_BROWSER_SESSION、AGENT_BROWSER_EXECUTABLE_PATH、AGENT_BROWSER_EXTENSIONS、AGENT_BROWSER_PROVIDER、AGENT_BROWSER_STREAM_PORT、AGENT_BROWSER_HOME。
表单提交示例:
agent-browser open https://example.com/form
agent-browser snapshot -i
# 输出显示:textbox "Email" [ref=e1], textbox "Password" [ref=e2], button "Submit" [ref=e3]
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 --session test1 open site-a.com
agent-browser --session test2 open site-b.com
agent-browser session list
JSON 输出:添加 --json 获得机器可读输出,例如 agent-browser snapshot -i --json、agent-browser get text @e1 --json。
调试:--headed 显示窗口、--cdp 或 connect 通过 CDP 连接、console 查看控制台消息(--clear 清除)、errors 查看页面错误(--clear 清除)、highlight 高亮元素、trace start/stop 记录并保存 trace、record start/stop 录制视频。
适用场景
- 脚本化网页工作流与自动化操作
- 适合 CI 的浏览器测试
- 基于会话的数据抓取
- 表单填写与提交
- 截图、PDF 与视频录制
- 需要代理、地理位置测试或轮换代理的场景
- 需要并行会话或状态持久化的场景
限制
- 资料未提供安装命令、收费与价格信息、平台支持范围、性能或效果数据,这些内容暂未提供。
- v0.9.1 中 screenshot 要求第一个位置参数为 CSS 选择器,省略会报 Validation error。
- 视频录制会创建新上下文(但保留 Cookie/存储)。
- 交互依赖快照返回的 refs,导航或 DOM 重大变化后需重新快照。
深入文档与模板
参考资料:references/snapshot-refs.md(ref 生命周期、失效规则、故障排查)、references/session-management.md(并行会话、状态持久化、并发抓取)、references/authentication.md(登录流程、OAuth、2FA 处理、状态复用)、references/video-recording.md(调试与文档录制工作流)、references/proxy-support.md(代理配置、地理位置测试、轮换代理)。
可执行模板:templates/form-automation.sh(带验证的表单填写)、templates/authenticated-session.sh(登录一次并复用状态)、templates/capture-workflow.sh(带截图的内容提取)。
用法:
./templates/form-automation.sh https://example.com/form
./templates/authenticated-session.sh https://app.example.com/login
./templates/capture-workflow.sh https://example.com ./output