跳转至

网络

在浏览器自动化过程中,使用网络命令来拦截请求、模拟响应、检查流量并导出 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