网络
在浏览器自动化过程中,使用网络命令来拦截请求、模拟响应、检查流量并导出 HAR 文件。
请求路由¶
路由会在匹配的请求发送之前生效。当需要影响首次页面加载时,请在导航前设置路由。
agent-browser open
agent-browser network route "**/analytics/**" --abort
agent-browser network route "**/api/users" --body '{"users":[]}'
agent-browser navigate https://app.example.com
| 命令 | 描述 |
|---|---|
network route <url> | 拦截匹配的请求 |
network route <url> --abort | 阻止匹配的请求 |
network route <url> --body <json> | 使用模拟响应体响应匹配的请求 |
network route <url> --body <json> --allow-origin <origin> | 允许该源上的页面跨源读取模拟响应 |
network route "*" --resource-type script --abort | 仅阻止特定的资源类型 |
network unroute [url] | 移除单个路由或全部路由 |
--resource-type 接受以逗号分隔的资源类型,例如 script、image、font、xhr 和 fetch。
如果为与页面不同源的 URL 提供模拟响应(www.example.com 上的页面调用 api.example.com),除非传入页面源对应的 --allow-origin,否则会因网络错误而失败。之后该模拟只会针对该源响应 CORS 检查和预检请求。JSON 响应体会以 application/json 形式发送。
请求日志¶
agent-browser network requests
agent-browser network requests --filter api
agent-browser network requests --type xhr,fetch
agent-browser network requests --method POST
agent-browser network requests --status 2xx
agent-browser network request <requestId>
agent-browser network requests --clear
| 筛选条件 | 描述 |
|---|---|
--filter <pattern> | 按 URL 子字符串或模式筛选 |
--type <csv> | 按资源类型筛选 |
--method <method> | 按 HTTP 方法筛选 |
--status <status> | 按精确状态码、状态类别或范围筛选 |
--clear | 清空已跟踪的请求日志 |
在 network requests 中找到请求 ID 后,使用 network request <requestId> 详细查看单个请求和响应。
HAR 导出¶
agent-browser network har start
agent-browser open https://app.example.com
agent-browser click @e4
agent-browser network har stop ./trace.har
如果 HAR 导出失败,录制内容和已捕获的请求仍然可用。修复目标路径后重试 network har stop。
默认情况下,文本响应体(JSON、HTML、JavaScript、表单数据)会以 content.text 形式嵌入 HAR 中。这些内容会在浏览器仍将其缓冲时捕获,因此即使发生导航也不会丢失。har start 上的 --content 标志用于控制此行为:
| 模式 | 行为 |
|---|---|
--content text | 默认模式。嵌入类文本响应体(JSON、XML、HTML、JS、表单数据),单个响应体上限为 2 MB。 |
--content all | 嵌入所有响应体;二进制内容以 base64 编码(encoding: "base64")。 |
--content none | 仅包含大小和 MIME 类型,不包含响应体。 |
HAR 文件包含请求头、响应头、Cookie、POST 数据和响应体。当页面使用 Cookie、Bearer 令牌或 API 密钥时,请将这些文件视为敏感信息。
SSR 与无 JavaScript 调试¶
agent-browser batch \
"open" \
"network route * --abort --resource-type script" \
"navigate http://localhost:3000" \
"snapshot -i"
使用 open 启动且不指定 URL 时,浏览器会停留在 about:blank,从而让路由有时间在首次真实导航之前完成注册。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 agen/agent-browser