关于 agent-browser-e2e
用于验证端到端网页工作流的 agent-browser 技能,说明交互前的检查、故障恢复步骤,以及遇到失败或意外结果时的人工复核节点。
主要功能
- 01断言前等待网络空闲
- 02检查现有 JavaScript 错误
- 03导航后刷新元素引用
- 04测试移动视口和离线场景
- 05测试后恢复联网状态
适用场景
- 01验证完整的网页操作流程
- 02在移动视口中测试网站
- 03检查离线或 PWA 行为
- 04排查断言失败和页面错误
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ owenleezy/ agent-browser-skill --skill agent-browser-e2e安装后在 Claude Code 中输入/agent-browser-e2e确认已加载。
详细介绍
端到端验证 — 执行协议
内部模板。 入口:
agent-browser技能。
切勿
NEVER assert state before `wait --load networkidle` — page may still be rendering
NEVER reuse refs after navigation — run `snapshot` again after every page change
NEVER leave `set offline on` after offline test — always restore with `set offline off`
NEVER skip `errors` check before test steps begin — pre-existing JS errors invalidate results
执行顺序
# 1. Open and wait for stable state
AGENT_BROWSER_NATIVE=1 agent-browser open <url>
AGENT_BROWSER_NATIVE=1 agent-browser wait --load networkidle
# 2. Check for errors before any interaction
AGENT_BROWSER_NATIVE=1 agent-browser errors # → judgment gate if critical errors found
AGENT_BROWSER_NATIVE=1 agent-browser snapshot -i
# 3. Login — prefer Auth Vault over manual fill
# First time: save credentials once
AGENT_BROWSER_NATIVE=1 agent-browser auth save myapp --url <login-url> --username admin --password secret
# Every subsequent run: one command
AGENT_BROWSER_NATIVE=1 agent-browser auth login myapp
AGENT_BROWSER_NATIVE=1 agent-browser wait --load networkidle
# 4. Execute test steps (prefer semantic locators)
AGENT_BROWSER_NATIVE=1 agent-browser find label "Email" fill "[email protected]"
AGENT_BROWSER_NATIVE=1 agent-browser find role button click --name "Sign In"
# 5. After every navigation: re-snapshot + re-wait
AGENT_BROWSER_NATIVE=1 agent-browser wait --load networkidle
AGENT_BROWSER_NATIVE=1 agent-browser snapshot -i
# 6. Assert state
AGENT_BROWSER_NATIVE=1 agent-browser is visible @e3
AGENT_BROWSER_NATIVE=1 agent-browser is checked @e5
AGENT_BROWSER_NATIVE=1 agent-browser get text @e1
# 7. Capture evidence
AGENT_BROWSER_NATIVE=1 agent-browser screenshot --full result.png
恢复方案
| 故障 | 恢复方法 |
|---|---|
| 元素引用已失效 | 重新运行 snapshot,重新定位 |
| 断言内容不匹配 | 截图 + 判断关卡 |
| 页面未加载 | wait --load networkidle + 最多重试 3 次 |
| 预发布环境证书错误 | --ignore-https-errors(切勿用于生产环境) |
| 页面响应缓慢 | AGENT_BROWSER_DEFAULT_TIMEOUT=60000 |
| 大页面的输出被截断 | 使用 --max-output <chars> 增大限制 |
判断关卡
遇到以下情况时暂停并询问用户:
- 测试步骤开始前发现 JS 错误
- 预期内容 ≠ 实际内容(可能是 bug)
- 所有重试均已耗尽,测试步骤仍失败
设备与环境变体
# Mobile viewport
AGENT_BROWSER_NATIVE=1 agent-browser set device "iPhone 15 Pro"
# Offline / PWA
AGENT_BROWSER_NATIVE=1 agent-browser set offline
AGENT_BROWSER_NATIVE=1 agent-browser reload
# ... assert offline state ...
AGENT_BROWSER_NATIVE=1 agent-browser set offline off # ALWAYS restore
# Geo-aware
AGENT_BROWSER_NATIVE=1 agent-browser set geo 31.2304 121.4737
常见问题
| 错误做法 | 修复方法 |
|---|---|
| 页面加载前就断言 | 先运行 wait --load networkidle |
| 导航后引用已失效 | 每次导航后都重新运行 snapshot |
忘记关闭 set offline | 离线测试后务必运行 set offline off |
| 预发布环境证书错误 | --ignore-https-errors — 切勿用于生产环境 |
find ref e3 fill "..." | ❌ ref 不是有效的 find 子命令。直接使用 @ref:fill @e3 "text" / click @e3 |
| 对话框中的标签不明确 | 模态框打开时,find label "X" 会匹配页面上的第一个元素,可能命中背景筛选器,而不是对话框字段。优先使用 find placeholder "...",或先用 snapshot -s ".dialog-class" 限定范围 |
应用打开新标签页(window.open) | agent-browser 会停留在原标签页。使用 tab list 检测,然后切换:tab 1(从 0 开始的索引) |
javascript "..." 不存在 | JS 执行命令是 eval "JS code",不是 javascript |
| 对话框阻止点击 | 运行 dialog status 确认,然后运行 dialog dismiss 或 dialog accept |
| 等待下载 | 点击下载触发按钮后运行 wait --download <path>,不要依赖固定的 wait 3000 |
评论
支持 Markdown