mcpField
A
agent-browser-commands

agent-browser-commands

github.com/owenleezyAgent 工作流456 次安装31 周前更新
代码仓库

关于 agent-browser-commands

agent-browser-commands 是 agent-browser 的内部命令参考,面向浏览器自动化任务。它汇总导航、页面交互、调试、网络、会话及设备模拟等命令,并建议从 agent-browser 技能开始处理自动化任务。

主要功能

  1. 01导航与标签页管理
  2. 02页面元素发现和交互
  3. 03截图、PDF 与差异比较
  4. 04网络请求检查和模拟
  5. 05会话、认证与批量执行
  6. 06设备和媒体模拟

适用场景

  1. 01查找浏览器自动化命令
  2. 02运行表单操作和多步骤页面流程
  3. 03排查网络或页面错误
  4. 04执行视觉回归和设备模拟测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/owenleezy/agent-browser-skill --skill agent-browser-commands

安装后在 Claude Code 中输入/agent-browser-commands确认已加载。

详细介绍

Agent Browser — 命令参考

内部参考。 对于浏览器自动化任务,请将 agent-browser skill 作为入口。


导航

命令说明适用场景
open <url>导航至 URL(支持 chrome:// 和 chrome-extension://)所有任务起点
back / forward浏览器历史记录多页流程回溯
reload刷新页面强制刷新状态
close关闭浏览器任务结束清理

发现

命令说明适用场景
snapshot包含引用的无障碍树获取交互元素引用
snapshot -i仅显示交互元素聚焦可操作元素
snapshot -c精简模式(减少噪音)大页面减少输出噪音
snapshot -d <n>限制树的深度只看顶层结构
snapshot -s <sel>限定 CSS 选择器范围弹窗/局部区域聚焦

交互

命令说明适用场景
click @e1点击元素按钮/链接触发
dblclick @e1双击元素可编辑单元格/选中文本
fill @e1 "text"清除并填充输入框表单输入(替换原值)
type @e1 "text"输入但不清除(追加内容)追加内容/受控组件
keyboard type "text"在获得焦点的元素中输入——每个字符都会触发 keydown/keypress/input/keyup,但无法可靠触发 document 级别的 keydown 监听器;对于作用于 document 的事件处理器,请使用 eval dispatchEvent(new KeyboardEvent(...))焦点已在目标时输入
keyboard inserttext "text"绕过所有键盘事件插入文本(不会触发 keydown/keypress/keyup)绕过键盘事件拦截直接插入文本
press <key>按下指定按键:Enter、Tab、Control+a、ArrowDown提交表单/快捷键/方向键
focus @e1聚焦元素聚焦后再使用 keyboard type
check @e1 / uncheck @e1复选框/单选按钮复选框/单选操作
select @e1 "option"选择下拉选项<select> 下拉菜单
hover @e1将鼠标悬停在元素上触发悬停菜单/Tooltip
drag @e1 @e2将源元素拖到目标元素上——使用 Playwright 基于指针的拖拽;适用于基于鼠标事件的可拖拽库(Sortable.js、jQueryUI)。不会派发 HTML5 DragEvent(dragstart/dragover/drop);对于 HTML5 Drag API,请使用 eval 手动派发 DragEvent看板排序/指针拖拽
upload @e1 <file>上传文件文件上传表单
download @e1 <path>点击元素下载文件导出按钮触发下载
scroll down滚动页面(上/下/左/右)触发懒加载/加载更多
scroll down --selector ".modal"在指定容器内滚动弹窗内容滚动
scrollintoview @e1将元素滚动至可视区域元素不在视口时,点击前使用
对话框
命令说明适用场景
dialog accept接受警告/确认对话框确认操作类弹窗
dialog accept "text"输入内容并接受提示对话框在 Prompt 中输入后确认
dialog dismiss关闭/取消对话框取消操作/关闭 alert
dialog status检查当前是否有对话框打开断言弹窗是否存在

鼠标(精细控制)

在像素坐标处派发指针/鼠标事件。适用于画布、绘图应用和基于 CSS/指针事件的可拖拽组件。不会触发 HTML5 Drag API 事件(dragstart/dragover/drop)——这些事件需要使用 eval DragEvent。

命令说明适用场景
mouse move <x> <y>将鼠标移动至指定坐标画布/绘图应用
mouse down [btn]按下鼠标按钮拖拽起点
mouse up [btn]松开鼠标按钮拖拽终点
mouse wheel <dy> [dx]滚动滚轮精确滚动量控制

获取信息

命令说明适用场景
get text @e1获取元素文本断言显示内容
get html @e1获取内部 HTML复杂结构检查
get value @e1获取输入框的值验证表单当前值
get attr @e1 href获取属性检查链接/data 属性
get title / get url页面信息导航后验证路由
get count "selector"统计匹配元素的数量断言列表条目数量
get box @e1获取边界框(x、y、width、height)精确坐标/截图裁剪
get styles @e1获取计算后的样式CSS 样式调试
get cdp-url当前页面的 CDP WebSocket URL高级 CDP 调试

状态检查

命令描述适用场景
is visible @e1检查是否可见元素显示断言
is enabled @e1检查是否启用按钮可交互断言
is checked @e1检查是否已选中复选框状态断言

等待

命令描述适用场景
wait @e1等待元素出现异步内容渲染
wait @e1 --state hidden等待元素消失Loading spinner 消失
wait @e1 --state detached等待元素从 DOM 中移除弹窗关闭后继续
wait 1000等待指定毫秒数CSS 过渡动画完成
wait --load networkidle等待网络空闲页面加载/导航后
wait --url "**/dashboard"等待 URL 匹配模式登录后跳转验证
wait --fn "window.ready"等待 JavaScript 表达式返回真值自定义加载完成信号
wait --text "Welcome"等待页面出现指定文本异步文字渲染
wait --download [path]等待下载完成触发下载后等待完成

截图

命令描述适用场景
screenshot [path]截取屏幕当前视口快照
screenshot --full截取完整页面完整页面记录/证据
screenshot --annotate带编号标签的标注截图Bug 报告/文档截图
pdf <path>保存为 PDF生成可打印报告

截图选项:--screenshot-dir <path>(默认目录)、--screenshot-quality <0-100>(JPEG)、--screenshot-format png|jpeg


差异与视觉回归

diff snapshot
agent-browser diff snapshot                         # vs last snapshot in session
agent-browser diff snapshot --baseline before.txt   # vs saved snapshot file
agent-browser diff snapshot -s ".sidebar"           # scope to selector
agent-browser diff snapshot -c -d 3                 # compact + depth limit

适用场景:检测 DOM 结构变化,对比前后差异

diff screenshot
agent-browser diff screenshot --baseline before.png
agent-browser diff screenshot --baseline before.png --output diff.png --threshold 0.1
agent-browser diff screenshot --baseline before.png -s "#main-content" --full

适用场景:视觉回归测试,--threshold 0~1(默认为 0.1,数值越小越严格)

diff url
agent-browser diff url https://staging.example.com https://prod.example.com
agent-browser diff url https://v1.example.com https://v2.example.com --screenshot --full
agent-browser diff url <u1> <u2> --wait-until networkidle

适用场景:跨环境/版本对比,使用 --screenshot 同时对比截图


调试

命令描述适用场景
inspect打开 Chrome DevTools(CLI 仍可使用)交互式调试
console查看控制台日志查看 JS 输出
console --pattern "err"筛选控制台日志快速定位错误日志
console --clear清空控制台日志缓冲区重置观察窗口
errors查看 JavaScript 错误最先检查,覆盖 80% 的问题
errors --clear清空错误缓冲区重置错误计数
highlight <sel>直观高亮元素可视化确认定位
network requests查看所有网络请求全量 API 调用记录
network requests --filter "api"按 URL 模式筛选聚焦特定接口
network requests --type xhr,fetch按资源类型筛选只看 XHR/Fetch
network requests --method POST按 HTTP 方法筛选只看写操作
network requests --status 4xx按状态码筛选快速查找失败请求
network requests --clear清空网络日志重置记录
network request <requestId>查看完整请求及响应正文查看完整 payload
network har start [path]开始 HAR 录制完整网络追踪起点
network har stop停止并保存 HAR 文件导出供 DevTools 分析
trace start [path]开始录制 Playwright 跟踪Playwright 调试追踪
trace stop停止跟踪使用 Playwright Trace Viewer 打开
profiler start [path]启动 Chrome DevTools 性能分析器性能分析
profiler stop停止性能分析器导出性能报告
record start <path> [url]开始录制视频(WebM)录制演示/Bug 复现
record stop停止并保存视频保存视频
record restart <path> [url]停止当前录制并开始新的录制重新录制(重拍)
eval "JS code"执行 JavaScript自定义查询/状态注入
clipboard read读取剪贴板内容验证复制结果
clipboard write "text"写入剪贴板注入剪贴板数据
clipboard copy <sel>将元素文本复制到剪贴板提取内容
clipboard paste <sel>将剪贴板内容粘贴到元素中粘贴到输入框

网络模拟

命令描述适用场景
network route "**/*.png" --abort拦截匹配的请求屏蔽图片/广告,加快加载
network route "**/api/**" --body '{"ok":true}'模拟响应正文测试特定 API 响应
network unroute [url]移除路由(未指定 URL 时移除全部路由)恢复真实网络

存储

命令描述适用场景
cookies查看所有 Cookie会话状态检查
cookies set <name> <val> --domain example.com --secure --httpOnly设置 Cookie注入 Auth 令牌
cookies clear清除所有 Cookie重置会话状态
storage local查看 localStorage查看持久化数据
storage local get <key>获取 localStorage 键读取特定 key
storage local set <key> <val>设置 localStorage 键注入 token/配置
storage local clear清除 localStorage重置前端状态
storage session get <key>SessionStorage(相同 API)会话级数据操作

标签页

命令描述适用场景
tab new打开新标签页多标签流程
tab list列出当前浏览器上下文中的所有标签页查看已知标签
tab <n>按索引切换标签页(从 0 开始)切换到目标标签
tab close <n>按索引关闭标签页关闭辅助标签

target="_blank" 限制:点击 target="_blank" 链接时,浏览器可能会在新的 BrowserContext 中打开页面,agent-browser 的 tab list 只跟踪当前 context 内的标签页。如果新标签页没有出现在 tab list 中,请改用 tab new + open <url> 手动管理。


会话

命令描述适用场景
session显示当前会话名称确认当前会话
session list列出活动会话多会话并发查看

Auth Vault

保存并重复使用登录凭据,避免每次 E2E 运行时都手动登录:

# Save once
agent-browser auth save myapp --url http://localhost:5173/login --username admin --password secret

# Reuse in any test (auto-fills and submits login form)
agent-browser auth login myapp

# Manage
agent-browser auth list
agent-browser auth show myapp
agent-browser auth delete myapp

凭据使用 AES-256-GCM 加密(AGENT_BROWSER_ENCRYPTION_KEY)。建议使用 --password-stdin 而不是 --password,以避免凭据暴露在 Shell 历史记录中。


批量执行

通过标准输入以 JSON 数组的形式执行多条命令,比依次调用 Shell 更高效:

echo '[["fill","@e1","[email protected]"],["fill","@e2","pass"],["click","@e3"]]' | agent-browser batch
agent-browser batch --bail   # stop on first error (default: continue all)

确认

对于需要明确批准的操作(设置了 --confirm-actions 时):

命令描述适用场景
confirm <id>批准待处理的操作审批写操作
deny <id>拒绝待处理的操作拒绝危险操作

设备 / 模拟

命令描述适用场景
set viewport <w> <h>设置视口大小响应式测试
set viewport <w> <h> <scale>设置视口及设备像素比Retina 屏测试
set device "iPhone 15 Pro"预设设备模拟移动端完整模拟
set geo <lat> <lng>设置地理位置地理位置功能测试
set offline [on|off]切换离线模式(务必使用 set offline off 恢复)PWA/离线模式测试
set headers <json>设置作用于页面源的 HTTP 标头注入 Authorization
set credentials <user> <pass>HTTP 基本身份验证Basic Auth 站点
set media dark暗色模式暗色主题测试
set media dark reduced-motion暗色模式 + 减少动态效果无障碍测试

iOS Simulator(需要 Xcode + Appium):使用 -p ios 标志

agent-browser -p ios open http://localhost:3000
agent-browser -p ios --device "iPhone 15 Pro" snapshot
agent-browser -p ios device list
agent-browser -p ios swipe up

安装与设置

命令描述适用场景
install下载 Chromium(首次设置)首次安装
install --with-deps同时安装系统依赖(Linux)Linux CI 环境
upgrade将 agent-browser 升级到最新版本(仅限 npm;Homebrew:brew upgrade agent-browser)版本更新

语义定位器(find)

优先于 CSS 选择器使用,可在 UI 重构后继续生效:

agent-browser find role button click --name "Submit"
agent-browser find role link click --name "Learn More"
agent-browser find role button click --name "Submit" --exact   # exact name match
agent-browser find text "Sign In" click
agent-browser find label "Email" fill "[email protected]"
agent-browser find placeholder "Search..." type "query"
agent-browser find testid "submit-button" click
agent-browser find alt "Company logo" click
agent-browser find first "button.primary" click
agent-browser find last "a.link" click
agent-browser find nth 2 ".card" hover     # 0-based index

有效的 find 子命令:role、text、label、placeholder、alt、title、testid、first、last、nth ❌ 不存在 find ref。

使用快照中的 Ref

snapshot 会返回类似 [ref=e3] 的 ref。这些 ref 可以直接与操作命令搭配使用,而不是通过 find 使用:

# ✅ Direct ref usage
agent-browser click @e3
agent-browser fill @e3 "hello"
agent-browser hover @e3

# ✅ Refs in assertions
agent-browser is visible @e3
agent-browser get text @e3
agent-browser get value @e3

# ❌ Wrong — ref is not a find subcommand
agent-browser find ref e3 fill "hello"

全局选项

选项描述
--headed显示浏览器窗口;也可通过 AGENT_BROWSER_HEADED=1 设置
--engine chrome|lightpanda浏览器引擎;也可通过 AGENT_BROWSER_ENGINE 设置
-p, --provider <name>浏览器提供方:ios、browserbase、kernel、browseruse、browserless
--cdp <port>通过 CDP 连接到 Chrome
--auto-connect自动发现正在运行的 Chrome
--profile <path>持久化浏览器配置文件(重复使用身份验证信息)
--session <name>隔离会话
--session-name <name>自动保存/恢复 cookies 和 localStorage
--state <path>从 JSON 加载存储状态
--download-path <path>默认下载目录;也可通过 AGENT_BROWSER_DOWNLOAD_PATH 设置
--headers '{"Authorization":"Bearer token"}'身份验证标头
--proxy "http://127.0.0.1:7890"代理服务(也会读取 HTTP_PROXY/HTTPS_PROXY/ALL_PROXY 环境变量作为备用值)
--proxy-bypass "localhost,*.internal"绕过代理(也会读取 NO_PROXY 环境变量)
--color-scheme dark|light配色方案偏好
--ignore-https-errors忽略 TLS 证书错误
--allow-file-access允许访问 file:// URL
--user-agent <ua>自定义 User-Agent
--allowed-domains <list>限制为已批准的域名(安全性);--domain-allowlist 是别名
--action-policy <path>定义允许/阻止的操作类别的 JSON 文件
--confirm-actions <list>需要确认的操作类别
--confirm-interactive在 TTY 中显示交互式确认提示
--content-boundaries在页面输出中添加边界标记(便于解析 --max-output)
--max-output <chars>将页面输出截断为 N 个字符;也可通过 AGENT_BROWSER_MAX_OUTPUT 设置
--jsonJSON 输出
--full / -f完整页面(截图)
--annotate带注释的输出
--debug调试输出
关键环境变量
变量描述
AGENT_BROWSER_HEADED=1显示浏览器窗口
AGENT_BROWSER_ENGINE=chrome|lightpanda浏览器引擎(chrome 为默认值)
AGENT_BROWSER_NATIVE=1⚠️ 旧版别名——接受但未在 0.22+ 中记录;建议省略(chrome 引擎为默认值)
AGENT_BROWSER_DEFAULT_TIMEOUT默认操作超时时间,单位为 ms(默认值:25000)
AGENT_BROWSER_MAX_OUTPUT页面输出的最大字符数
AGENT_BROWSER_STREAM_PORT在指定端口启用 WebSocket 流式传输(例如:9223)
AGENT_BROWSER_IDLE_TIMEOUT_MS空闲 N ms 后自动关闭守护进程
AGENT_BROWSER_ENCRYPTION_KEY用于加密 Auth Vault 的 64 字符十六进制 AES-256-GCM 密钥
AGENT_BROWSER_SCREENSHOT_DIR默认截图输出目录

评论

支持 Markdown