@dyyz1993/agent-browser 0.9.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/__tests__/utils/parseCli.d.ts +1 -0
  2. package/dist/__tests__/utils/parseCli.d.ts.map +1 -1
  3. package/dist/__tests__/utils/parseCli.js +18 -10
  4. package/dist/__tests__/utils/parseCli.js.map +1 -1
  5. package/dist/actions.d.ts.map +1 -1
  6. package/dist/actions.js +63 -3
  7. package/dist/actions.js.map +1 -1
  8. package/dist/browser.d.ts +46 -2
  9. package/dist/browser.d.ts.map +1 -1
  10. package/dist/browser.js +343 -13
  11. package/dist/browser.js.map +1 -1
  12. package/dist/cli/commands.d.ts.map +1 -1
  13. package/dist/cli/commands.js +8 -3
  14. package/dist/cli/commands.js.map +1 -1
  15. package/dist/cli/connection.d.ts.map +1 -1
  16. package/dist/cli/connection.js +39 -1
  17. package/dist/cli/connection.js.map +1 -1
  18. package/dist/cli/help.d.ts.map +1 -1
  19. package/dist/cli/help.js +27 -20
  20. package/dist/cli/help.js.map +1 -1
  21. package/dist/cli/output.d.ts.map +1 -1
  22. package/dist/cli/output.js +5 -0
  23. package/dist/cli/output.js.map +1 -1
  24. package/dist/cli.js +20 -0
  25. package/dist/cli.js.map +1 -1
  26. package/dist/daemon.d.ts.map +1 -1
  27. package/dist/daemon.js +147 -1
  28. package/dist/daemon.js.map +1 -1
  29. package/dist/message-bridge.d.ts.map +1 -1
  30. package/dist/message-bridge.js +22 -4
  31. package/dist/message-bridge.js.map +1 -1
  32. package/dist/openapi.d.ts +22 -0
  33. package/dist/openapi.d.ts.map +1 -0
  34. package/dist/openapi.js +382 -0
  35. package/dist/openapi.js.map +1 -0
  36. package/dist/protocol.d.ts.map +1 -1
  37. package/dist/protocol.js +18 -0
  38. package/dist/protocol.js.map +1 -1
  39. package/dist/recorder/inject.js +61 -134
  40. package/dist/stream-server-standalone.d.ts +10 -0
  41. package/dist/stream-server-standalone.d.ts.map +1 -1
  42. package/dist/stream-server-standalone.js +594 -74
  43. package/dist/stream-server-standalone.js.map +1 -1
  44. package/dist/stream-server.d.ts +67 -2
  45. package/dist/stream-server.d.ts.map +1 -1
  46. package/dist/stream-server.js +371 -51
  47. package/dist/stream-server.js.map +1 -1
  48. package/dist/swagger-ui.d.ts +6 -0
  49. package/dist/swagger-ui.d.ts.map +1 -0
  50. package/dist/swagger-ui.js +51 -0
  51. package/dist/swagger-ui.js.map +1 -0
  52. package/dist/test-live.d.ts +2 -0
  53. package/dist/test-live.d.ts.map +1 -0
  54. package/dist/test-live.js +333 -0
  55. package/dist/test-live.js.map +1 -0
  56. package/dist/types.d.ts +7 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js.map +1 -1
  59. package/dist/viewer-html.d.ts.map +1 -1
  60. package/dist/viewer-html.js +270 -58
  61. package/dist/viewer-html.js.map +1 -1
  62. package/dist/viewer-script.d.ts +20 -2
  63. package/dist/viewer-script.d.ts.map +1 -1
  64. package/dist/viewer-script.js +858 -102
  65. package/dist/viewer-script.js.map +1 -1
  66. package/package.json +1 -1
  67. package/scripts/postinstall.js +6 -32
  68. package/scripts/test-cli-help.sh +51 -0
  69. package/scripts/verify-form.sh +67 -0
  70. package/scripts/verify-login.sh +65 -0
  71. package/scripts/verify-recording.sh +80 -0
  72. package/scripts/verify-upload.sh +41 -0
  73. package/skills/agent-browser/SKILL.md +88 -1
  74. package/skills/agent-browser/references/commands.md +3 -0
  75. package/skills/agent-browser/references/network-monitoring.md +232 -0
  76. package/skills/agent-browser/references/profiling.md +120 -0
  77. package/skills/agent-browser/references/recorder.md +319 -0
  78. package/skills/agent-browser/templates/network-intercept-crawl.sh +255 -0
  79. package/dist/__tests__/test-iframe.d.ts +0 -2
  80. package/dist/__tests__/test-iframe.d.ts.map +0 -1
  81. package/dist/__tests__/test-iframe.js +0 -52
  82. package/dist/__tests__/test-iframe.js.map +0 -1
  83. package/dist/cli-new.d.ts +0 -3
  84. package/dist/cli-new.d.ts.map +0 -1
  85. package/dist/cli-new.js +0 -308
  86. package/dist/cli-new.js.map +0 -1
  87. package/dist/cli-old.d.ts +0 -3
  88. package/dist/cli-old.d.ts.map +0 -1
  89. package/dist/cli-old.js +0 -1101
  90. package/dist/cli-old.js.map +0 -1
  91. package/dist/recorder/binding.d.ts +0 -24
  92. package/dist/recorder/binding.d.ts.map +0 -1
  93. package/dist/recorder/binding.js +0 -215
  94. package/dist/recorder/binding.js.map +0 -1
  95. package/dist/recorder/index.d.ts +0 -4
  96. package/dist/recorder/index.d.ts.map +0 -1
  97. package/dist/recorder/index.js +0 -4
  98. package/dist/recorder/index.js.map +0 -1
  99. package/dist/recorder/recorder.d.ts +0 -19
  100. package/dist/recorder/recorder.d.ts.map +0 -1
  101. package/dist/recorder/recorder.js +0 -101
  102. package/dist/recorder/recorder.js.map +0 -1
  103. package/dist/recorder/store.d.ts +0 -22
  104. package/dist/recorder/store.d.ts.map +0 -1
  105. package/dist/recorder/store.js +0 -150
  106. package/dist/recorder/store.js.map +0 -1
  107. package/dist/recorder/types.d.ts +0 -73
  108. package/dist/recorder/types.d.ts.map +0 -1
  109. package/dist/recorder/types.js +0 -5
  110. package/dist/recorder/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-script.js","sourceRoot":"","sources":["../src/viewer-script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer-script.js","sourceRoot":"","sources":["../src/viewer-script.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwuCR,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dyyz1993/agent-browser",
3
- "version": "0.9.2",
3
+ "version": "0.11.0",
4
4
  "description": "Headless browser automation CLI for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/daemon.js",
@@ -145,40 +145,14 @@ async function fixGlobalInstallBin() {
145
145
 
146
146
  /**
147
147
  * Fix npm symlink on Mac/Linux global installs.
148
- * Replace the symlink to the JS wrapper with a symlink to the native binary.
148
+ * Keep the symlink pointing to dist/cli.js for full CLI functionality.
149
149
  */
150
150
  async function fixUnixSymlink() {
151
- // Get npm's global bin directory (npm prefix -g + /bin)
152
- let npmBinDir;
153
- try {
154
- const prefix = execSync('npm prefix -g', { encoding: 'utf8' }).trim();
155
- npmBinDir = join(prefix, 'bin');
156
- } catch {
157
- return; // npm not available
158
- }
159
-
160
- const symlinkPath = join(npmBinDir, 'agent-browser');
161
-
162
- // Check if symlink exists (indicates global install)
163
- try {
164
- const stat = lstatSync(symlinkPath);
165
- if (!stat.isSymbolicLink()) {
166
- return; // Not a symlink, don't touch it
167
- }
168
- } catch {
169
- return; // Symlink doesn't exist, not a global install
170
- }
171
-
172
- // Replace symlink to point directly to native binary
173
- try {
174
- unlinkSync(symlinkPath);
175
- symlinkSync(binaryPath, symlinkPath);
176
- console.log('✓ Optimized: symlink points to native binary (zero overhead)');
177
- } catch (err) {
178
- // Permission error or other issue - not critical, JS wrapper still works
179
- console.log(`⚠ Could not optimize symlink: ${err.message}`);
180
- console.log(' CLI will work via Node.js wrapper (slightly slower startup)');
181
- }
151
+ // Skip symlink replacement - keep pointing to dist/cli.js
152
+ // This ensures all CLI features work (including --help for all commands)
153
+ // The native binary is still available at bin/agent-browser-{platform}-{arch}
154
+ // for users who prefer faster startup
155
+ console.log('✓ Using Node.js CLI (full feature support)');
182
156
  }
183
157
 
184
158
  /**
@@ -0,0 +1,51 @@
1
+ #!/bin/bash
2
+ # Test all CLI commands have --help support
3
+ # Run this before commits to ensure help documentation is complete
4
+
5
+ set -e
6
+
7
+ echo "Testing all CLI commands for --help support..."
8
+
9
+ # 所有顶级命令列表
10
+ COMMANDS=(
11
+ "open" "click" "dblclick" "type" "fill" "press" "hover" "focus"
12
+ "check" "uncheck" "select" "drag" "upload" "download" "scroll" "scrollintoview"
13
+ "wait" "screenshot" "pdf" "snapshot" "eval" "connect" "close"
14
+ "back" "forward" "reload"
15
+ "get" "is" "find" "mouse" "set" "network" "storage" "cookies" "tab"
16
+ "trace" "record" "recorder" "console" "errors" "highlight" "state"
17
+ "viewer" "ask" "config" "device" "dialog" "frame" "window" "tap" "swipe"
18
+ "session"
19
+ )
20
+
21
+ FAILED=()
22
+ PASSED=()
23
+
24
+ for cmd in "${COMMANDS[@]}"; do
25
+ output=$(node dist/cli.js "$cmd" --help 2>&1)
26
+ # 检查输出是否包含用法说明
27
+ if echo "$output" | grep -qi "usage\|agent-browser $cmd"; then
28
+ PASSED+=("$cmd")
29
+ else
30
+ FAILED+=("$cmd")
31
+ echo "FAILED: $cmd"
32
+ echo "Output: $output" | head -5
33
+ echo "---"
34
+ fi
35
+ done
36
+
37
+ echo ""
38
+ echo "=== Summary ==="
39
+ echo "PASSED: ${#PASSED[@]}"
40
+ echo "FAILED: ${#FAILED[@]}"
41
+
42
+ if [ ${#FAILED[@]} -gt 0 ]; then
43
+ echo ""
44
+ echo "The following commands need --help support:"
45
+ printf ' - %s\n' "${FAILED[@]}"
46
+ exit 1
47
+ fi
48
+
49
+ echo ""
50
+ echo "All commands have proper --help support!"
51
+ exit 0
@@ -0,0 +1,67 @@
1
+ #!/bin/bash
2
+ # 场景2: 表单填写验证脚本
3
+ # 从 form-test.yaml 生成的脚本
4
+
5
+ set -e # 遇到错误立即退出
6
+
7
+ # 启用人工模拟模式
8
+ export AGENT_BROWSER_HUMAN=bezier
9
+ SESSION="form-verify-$(date +%s)"
10
+
11
+ # 测试页面路径
12
+ TEST_PAGE="file:///Users/xuyingzhou/Project/temporary/agent-browser/test-pages/form-test.html"
13
+
14
+ echo "=== 开始执行表单填写脚本 ==="
15
+ echo "Session: $SESSION"
16
+ echo "AGENT_BROWSER_HUMAN: $AGENT_BROWSER_HUMAN"
17
+
18
+ # 打开测试页面
19
+ echo "1. 打开表单测试页面..."
20
+ agent-browser --session $SESSION --allow-file-access --headed open "$TEST_PAGE"
21
+ agent-browser --session $SESSION wait --load networkidle
22
+
23
+ # 填写表单
24
+ echo "2. 填写表单..."
25
+ agent-browser --session $SESSION fill "#name" "测试用户"
26
+ agent-browser --session $SESSION fill "#email" "test@example.com"
27
+ agent-browser --session $SESSION fill "#password" "password123"
28
+ agent-browser --session $SESSION select "#country" "cn"
29
+ agent-browser --session $SESSION check "#agree"
30
+
31
+ # 提交表单
32
+ echo "3. 提交表单..."
33
+ agent-browser --session $SESSION click "#submitBtn"
34
+
35
+ # 等待结果显示
36
+ agent-browser --session $SESSION wait 500
37
+
38
+ # 验证结果
39
+ echo "4. 验证结果..."
40
+ URL=$(agent-browser --session $SESSION get url)
41
+ echo "当前URL: $URL"
42
+
43
+ # 检查URL是否正确
44
+ if [[ "$URL" == *"form-test.html"* ]]; then
45
+ echo "✓ URL验证成功"
46
+ else
47
+ echo "✗ URL验证失败"
48
+ agent-browser --session $SESSION close
49
+ exit 1
50
+ fi
51
+
52
+ # 检查表单数据是否显示
53
+ RESULT=$(agent-browser --session $SESSION get text "#result")
54
+ if [[ "$RESULT" == *"测试用户"* ]]; then
55
+ echo "✓ 表单数据验证成功"
56
+ else
57
+ echo "✗ 表单数据验证失败"
58
+ agent-browser --session $SESSION close
59
+ exit 1
60
+ fi
61
+
62
+ # 清理
63
+ echo "5. 关闭浏览器..."
64
+ agent-browser --session $SESSION close
65
+
66
+ echo "=== 脚本执行成功 ==="
67
+ exit 0
@@ -0,0 +1,65 @@
1
+ #!/bin/bash
2
+ # 场景8: 登录功能验证脚本(含验证码识别)
3
+
4
+ set -e
5
+ export AGENT_BROWSER_HUMAN=bezier
6
+ SESSION="login-verify-$(date +%s)"
7
+ TEST_PAGE="file:///Users/xuyingzhou/Project/temporary/agent-browser/test-pages/login-test.html"
8
+
9
+ echo "=== 开始执行登录验证脚本 ==="
10
+ echo "Session: $SESSION"
11
+
12
+ # 打开测试页面
13
+ echo "1. 打开登录测试页面..."
14
+ agent-browser --session $SESSION --allow-file-access --headed open "$TEST_PAGE"
15
+ agent-browser --session $SESSION wait --load networkidle
16
+
17
+ # 检查未登录标识
18
+ echo "2. 检查未登录标识..."
19
+ UNLOGGED=$(agent-browser --session $SESSION get text "#loggedOutIndicator")
20
+ if [[ "$UNLOGGED" == *"尚未登录"* ]]; then
21
+ echo "✓ 检测到未登录标识"
22
+ else
23
+ echo "✗ 未检测到未登录标识"
24
+ fi
25
+
26
+ # 获取验证码并立即填写(使用链式命令减少延迟)
27
+ echo "3. 获取验证码并填写..."
28
+ agent-browser --session $SESSION eval --stdin <<'EOF'
29
+ const captcha = document.getElementById("captchaCode").textContent;
30
+ document.getElementById("username").value = "testuser";
31
+ document.getElementById("password").value = "password123";
32
+ document.getElementById("captcha").value = captcha;
33
+ "验证码: " + captcha;
34
+ EOF
35
+
36
+ echo "4. 提交登录..."
37
+ agent-browser --session $SESSION click "#loginBtn"
38
+ agent-browser --session $SESSION wait 500
39
+
40
+ # 验证登录结果
41
+ echo "6. 验证登录结果..."
42
+ STATUS=$(agent-browser --session $SESSION get text "#loginStatus")
43
+ if [[ "$STATUS" == *"登录成功"* ]]; then
44
+ echo "✓ 登录成功"
45
+ else
46
+ echo "✗ 登录失败: $STATUS"
47
+ agent-browser --session $SESSION close
48
+ exit 1
49
+ fi
50
+
51
+ # 检查用户信息显示
52
+ echo "7. 检查用户信息..."
53
+ USERINFO=$(agent-browser --session $SESSION get text "#userInfo")
54
+ if [[ "$USERINFO" == *"testuser"* ]]; then
55
+ echo "✓ 用户信息显示正确"
56
+ else
57
+ echo "✗ 用户信息显示错误"
58
+ fi
59
+
60
+ # 清理
61
+ echo "8. 关闭浏览器..."
62
+ agent-browser --session $SESSION close
63
+
64
+ echo "=== 脚本执行成功 ==="
65
+ exit 0
@@ -0,0 +1,80 @@
1
+ #!/bin/bash
2
+ # 从 complex-scene-5.yaml 生成的验证脚本
3
+ # 用于验证录制转脚本的可靠性
4
+
5
+ set -e # 遇到错误立即退出
6
+
7
+ export AGENT_BROWSER_HUMAN=bezier
8
+ SESSION="verify-$(date +%s)"
9
+
10
+ # 测试页面路径
11
+ TEST_PAGE="file:///Users/xuyingzhou/Project/temporary/agent-browser/test-pages/complex-scene-5.html"
12
+
13
+ echo "=== 开始执行脚本 ==="
14
+ echo "Session: $SESSION"
15
+
16
+ # 打开测试页面
17
+ echo "1. 打开测试页面..."
18
+ agent-browser --session $SESSION --allow-file-access --headed open "$TEST_PAGE"
19
+ agent-browser --session $SESSION wait --load networkidle
20
+
21
+ # 执行表单填写
22
+ echo "2. 填写表单..."
23
+ agent-browser --session $SESSION fill "#username" "测试用户001"
24
+ agent-browser --session $SESSION fill "#email" "test@example.com"
25
+ agent-browser --session $SESSION fill "#comments" "这是一个自动化测试备注信息"
26
+
27
+ # 点击按钮
28
+ echo "3. 点击按钮..."
29
+ agent-browser --session $SESSION click "#btn-primary"
30
+ agent-browser --session $SESSION click "#btn-secondary"
31
+ agent-browser --session $SESSION click "#btn-success"
32
+ agent-browser --session $SESSION click "#btn-danger"
33
+
34
+ # 下拉选择
35
+ echo "4. 选择下拉选项..."
36
+ agent-browser --session $SESSION select "#country" "cn"
37
+ agent-browser --session $SESSION select "#city" "北京"
38
+
39
+ # 复选框
40
+ echo "5. 勾选复选框..."
41
+ agent-browser --session $SESSION check "#chk1"
42
+ agent-browser --session $SESSION check "#chk2"
43
+ agent-browser --session $SESSION check "#chk4"
44
+
45
+ # 单选框
46
+ echo "6. 选择单选项..."
47
+ agent-browser --session $SESSION click "#rd1"
48
+
49
+ # 计数器
50
+ echo "7. 点击计数器..."
51
+ agent-browser --session $SESSION click "#counter-increase"
52
+
53
+ # 开关
54
+ echo "8. 切换开关..."
55
+ agent-browser --session $SESSION click "#dark-mode-toggle"
56
+
57
+ # 收集数据
58
+ echo "9. 点击收集数据..."
59
+ agent-browser --session $SESSION click "#collect-data"
60
+
61
+ # 验证结果
62
+ echo "10. 验证结果..."
63
+ URL=$(agent-browser --session $SESSION get url)
64
+ echo "当前URL: $URL"
65
+
66
+ # 检查URL是否正确
67
+ if [[ "$URL" == *"complex-scene-5.html"* ]]; then
68
+ echo "✓ URL验证成功"
69
+ else
70
+ echo "✗ URL验证失败"
71
+ agent-browser --session $SESSION close
72
+ exit 1
73
+ fi
74
+
75
+ # 清理
76
+ echo "11. 关闭浏览器..."
77
+ agent-browser --session $SESSION close
78
+
79
+ echo "=== 脚本执行成功 ==="
80
+ exit 0
@@ -0,0 +1,41 @@
1
+ #!/bin/bash
2
+ # 场景3: 文件上传验证脚本
3
+
4
+ set -e
5
+ export AGENT_BROWSER_HUMAN=bezier
6
+ SESSION="upload-verify-$(date +%s)"
7
+ TEST_PAGE="file:///Users/xuyingzhou/Project/temporary/agent-browser/test-pages/upload-test.html"
8
+ TEST_FILE="/Users/xuyingzhou/Project/temporary/agent-browser/test-pages/upload-test.txt"
9
+
10
+ echo "=== 开始执行文件上传脚本 ==="
11
+ echo "Session: $SESSION"
12
+
13
+ # 打开测试页面
14
+ echo "1. 打开文件上传测试页面..."
15
+ agent-browser --session $SESSION --allow-file-access --headed open "$TEST_PAGE"
16
+ agent-browser --session $SESSION wait --load networkidle
17
+
18
+ # 上传文件
19
+ echo "2. 上传文件..."
20
+ agent-browser --session $SESSION upload "#fileInput" "$TEST_FILE"
21
+
22
+ # 等待上传完成
23
+ agent-browser --session $SESSION wait 1000
24
+
25
+ # 验证结果
26
+ echo "3. 验证结果..."
27
+ URL=$(agent-browser --session $SESSION get url)
28
+ if [[ "$URL" == *"upload-test.html"* ]]; then
29
+ echo "✓ URL验证成功"
30
+ else
31
+ echo "✗ URL验证失败"
32
+ agent-browser --session $SESSION close
33
+ exit 1
34
+ fi
35
+
36
+ # 清理
37
+ echo "4. 关闭浏览器..."
38
+ agent-browser --session $SESSION close
39
+
40
+ echo "=== 脚本执行成功 ==="
41
+ exit 0
@@ -27,6 +27,30 @@ agent-browser wait --load networkidle
27
27
  agent-browser snapshot -i # Check result
28
28
  ```
29
29
 
30
+ ### Recording & Replaying Workflows
31
+
32
+ For test automation and workflow capture:
33
+
34
+ ```bash
35
+ # Start recording
36
+ agent-browser recorder start --session my-test
37
+
38
+ # Perform workflow
39
+ agent-browser open https://example.com/form
40
+ agent-browser snapshot -i
41
+ agent-browser fill @e1 "user@example.com"
42
+ agent-browser fill @e2 "password123"
43
+ agent-browser click @e3
44
+
45
+ # Stop and save
46
+ agent-browser recorder stop --output test-workflow.yaml
47
+
48
+ # Replay later
49
+ agent-browser recorder replay test-workflow.yaml
50
+ ```
51
+
52
+ See [recorder.md](references/recorder.md) for detailed recording workflows.
53
+
30
54
  ## Working with Iframes
31
55
 
32
56
  Use `--in-frame` to operate inside iframes. The path uses iframe name/id or index:
@@ -93,6 +117,14 @@ agent-browser wait --load networkidle # Wait for network idle
93
117
  agent-browser wait --url "**/page" # Wait for URL pattern
94
118
  agent-browser wait 2000 # Wait milliseconds
95
119
 
120
+ # Network monitoring
121
+ agent-browser network requests # View network requests
122
+ agent-browser network requests --filter "**/api/**" # Filter requests
123
+ agent-browser network requests --clear # Clear history
124
+ agent-browser network route "**/api/**" --abort # Block requests
125
+ agent-browser network route "**/api/**" --body '{}' # Mock response
126
+ agent-browser network unroute "**/api/**" # Remove routes
127
+
96
128
  # Capture
97
129
  agent-browser screenshot # Screenshot to temp dir
98
130
  agent-browser screenshot --full # Full page screenshot
@@ -212,6 +244,32 @@ wait
212
244
  jq '.body.aweme_list[:10] | map({id, desc, stats})' /tmp/douyin.json
213
245
  ```
214
246
 
247
+ ### Network Monitoring & API Mocking
248
+
249
+ Monitor, filter, and mock network requests for testing and debugging.
250
+
251
+ ```bash
252
+ # View all network requests
253
+ agent-browser network requests
254
+
255
+ # Filter requests by pattern
256
+ agent-browser network requests --filter "**/api/**"
257
+
258
+ # Clear request history
259
+ agent-browser network requests --clear
260
+
261
+ # Mock API responses
262
+ agent-browser network route "**/api/users" --body '{"users": []}'
263
+
264
+ # Block unwanted requests (ads, tracking)
265
+ agent-browser network route "**/ads/**" --abort
266
+
267
+ # Remove routes
268
+ agent-browser network unroute "**/api/users"
269
+ ```
270
+
271
+ See [network-monitoring.md](references/network-monitoring.md) for detailed network monitoring patterns.
272
+
215
273
  ### Parallel Sessions
216
274
 
217
275
  ```bash
@@ -297,6 +355,33 @@ agent-browser find placeholder "Search" type "query"
297
355
  agent-browser find testid "submit-btn" click
298
356
  ```
299
357
 
358
+ ## Proxy Configuration
359
+
360
+ Configure proxy for geo-testing, rate limiting avoidance, and corporate environments:
361
+
362
+ ```bash
363
+ # Basic proxy via global option
364
+ agent-browser --proxy http://proxy.example.com:8080 open https://example.com
365
+
366
+ # HTTPS proxy
367
+ agent-browser --proxy https://proxy.example.com:8080 open https://example.com
368
+
369
+ # SOCKS5 proxy
370
+ agent-browser --proxy socks5://proxy.example.com:1080 open https://example.com
371
+
372
+ # Authenticated proxy
373
+ agent-browser --proxy http://user:pass@proxy.example.com:8080 open https://example.com
374
+
375
+ # Proxy with bypass list
376
+ agent-browser --proxy http://proxy.example.com:8080 --proxy-bypass "localhost,*.internal.com" open https://example.com
377
+
378
+ # Verify proxy is working (check IP)
379
+ agent-browser --proxy http://proxy.example.com:8080 open https://httpbin.org/ip
380
+ agent-browser get text body
381
+ ```
382
+
383
+ **Proxy Validation:** The proxy setting is actively enforced - if you specify an unreachable proxy server, navigation will fail with a connection error, confirming the proxy configuration is being used (not just ignored).
384
+
300
385
  ## Deep-Dive Documentation
301
386
 
302
387
  | Reference | When to Use |
@@ -306,5 +391,7 @@ agent-browser find testid "submit-btn" click
306
391
  | [references/snapshot-refs.md](references/snapshot-refs.md) | Ref lifecycle, invalidation rules, troubleshooting |
307
392
  | [references/session-management.md](references/session-management.md) | Parallel sessions, state persistence, concurrent scraping |
308
393
  | [references/authentication.md](references/authentication.md) | Login flows, OAuth, 2FA handling, state reuse |
309
- | [references/video-recording.md](references/video-recording.md) | Recording workflows for debugging and documentation |
394
+ | [references/video-recording.md](references/video-recording.md) | Video recording for debugging |
395
+ | [references/recorder.md](references/recorder.md) | **Action recording & replay for test automation** |
310
396
  | [references/proxy-support.md](references/proxy-support.md) | Proxy configuration, geo-testing, rotating proxies |
397
+ | [references/network-monitoring.md](references/network-monitoring.md) | **Network request monitoring, API mocking, request blocking** |
@@ -363,6 +363,7 @@ agent-browser --full ... # Full page screenshot (-f)
363
363
  agent-browser --cdp <port> ... # Connect via Chrome DevTools Protocol
364
364
  agent-browser -p <provider> ... # Cloud browser provider (--provider)
365
365
  agent-browser --proxy <url> ... # Use proxy server
366
+ agent-browser --proxy-bypass <list> # Comma-separated bypass list for proxy
366
367
  agent-browser --headers <json> ... # HTTP headers scoped to URL's origin
367
368
  agent-browser --executable-path <p> # Custom browser executable
368
369
  agent-browser --extension <path> ... # Load browser extension (repeatable)
@@ -468,4 +469,6 @@ AGENT_BROWSER_PROVIDER="browserbase" # Cloud browser provider
468
469
  AGENT_BROWSER_STREAM_PORT="9223" # WebSocket streaming port
469
470
  AGENT_BROWSER_HOME="/path/to/agent-browser" # Custom install location
470
471
  AGENT_BROWSER_HUMAN="1" # Enable human-like mouse movement (1, bezier, arc, random, linear)
472
+ AGENT_BROWSER_PROXY="http://proxy:8080" # Proxy server URL
473
+ AGENT_BROWSER_PROXY_BYPASS="localhost,*" # Proxy bypass hosts
471
474
  ```