diff --git a/docs/zh-CN/cli/browser.md b/docs/zh-CN/cli/browser.md index 0261d3463..5dd145e77 100644 --- a/docs/zh-CN/cli/browser.md +++ b/docs/zh-CN/cli/browser.md @@ -1,22 +1,22 @@ --- read_when: - 你使用 `openclaw browser`,并且想要查看常见任务的示例 - - 你想通过节点主机控制在另一台机器上运行的浏览器 + - 你想通过一个节点主机来控制另一台机器上运行的浏览器 - 你想通过 Chrome MCP 连接到你本地已登录的 Chrome summary: '`openclaw browser` 的 CLI 参考(生命周期、配置文件、标签页、操作、状态和调试)' title: 浏览器 x-i18n: - generated_at: "2026-04-25T00:40:14Z" + generated_at: "2026-04-25T06:35:01Z" model: gpt-5.4 provider: openai - source_hash: d9da317f18128075203febae3b4c0e416d3a797cb92d473d35488098814a005d + source_hash: 03994a04839214fca41a8b53f21ddfb71560455039ff2e14b309b887eb86f5f9 source_path: cli/browser.md workflow: 15 --- # `openclaw browser` -管理 OpenClaw 的浏览器控制界面,并运行浏览器操作(生命周期、配置文件、标签页、快照、截图、导航、输入、状态模拟和调试)。 +管理 OpenClaw 的浏览器控制界面并运行浏览器操作(生命周期、配置文件、标签页、快照、截图、导航、输入、状态模拟和调试)。 相关内容: @@ -24,12 +24,12 @@ x-i18n: ## 常用标志 -- `--url `:Gateway 网关 WebSocket URL(默认来自配置)。 +- `--url `:Gateway 网关 WebSocket URL(默认使用配置中的值)。 - `--token `:Gateway 网关令牌(如果需要)。 -- `--timeout `:请求超时(毫秒)。 +- `--timeout `:请求超时时间(毫秒)。 - `--expect-final`:等待最终的 Gateway 网关响应。 -- `--browser-profile `:选择浏览器配置文件(默认来自配置)。 -- `--json`:机器可读输出(在支持的情况下)。 +- `--browser-profile `:选择一个浏览器配置文件(默认使用配置中的默认值)。 +- `--json`:机器可读输出(在支持时)。 ## 快速开始(本地) @@ -44,9 +44,9 @@ openclaw browser --browser-profile openclaw snapshot ## 快速故障排除 -如果 `start` 因 `not reachable after start` 失败,请先排查 CDP 就绪状态。如果 `start` 和 `tabs` 成功,但 `open` 或 `navigate` 失败,则说明浏览器控制平面是健康的,失败通常是由导航 SSRF 策略引起的。 +如果 `start` 因 `not reachable after start` 失败,请先排查 CDP 就绪状态。如果 `start` 和 `tabs` 成功,但 `open` 或 `navigate` 失败,则说明浏览器控制平面是健康的,失败通常是导航 SSRF 策略导致的。 -最小排查序列: +最小操作序列: ```bash openclaw browser --browser-profile openclaw doctor @@ -55,7 +55,7 @@ openclaw browser --browser-profile openclaw tabs openclaw browser --browser-profile openclaw open https://example.com ``` -详细指导:[浏览器故障排除](/zh-CN/tools/browser#cdp-startup-failure-vs-navigation-ssrf-block) +详细指南:[浏览器故障排除](/zh-CN/tools/browser#cdp-startup-failure-vs-navigation-ssrf-block) ## 生命周期 @@ -69,10 +69,10 @@ openclaw browser --browser-profile openclaw reset-profile 说明: -- 对于 `attachOnly` 和远程 CDP 配置文件,即使 OpenClaw 本身没有启动浏览器进程,`openclaw browser stop` 也会关闭当前活动的控制会话,并清除临时模拟覆盖项。 -- 对于本地托管配置文件,`openclaw browser stop` 会停止已启动的浏览器进程。 +- 对于 `attachOnly` 和远程 CDP 配置文件,即使 OpenClaw 本身并未启动浏览器进程,`openclaw browser stop` 也会关闭当前控制会话并清除临时模拟覆盖项。 +- 对于本地受管配置文件,`openclaw browser stop` 会停止已启动的浏览器进程。 -## 如果命令不存在 +## 如果命令缺失 如果 `openclaw browser` 是未知命令,请检查 `~/.openclaw/openclaw.json` 中的 `plugins.allow`。 @@ -86,15 +86,15 @@ openclaw browser --browser-profile openclaw reset-profile } ``` -当插件允许列表排除了 `browser` 时,`browser.enabled=true` 不会恢复这个 CLI 子命令。 +当插件允许列表排除了 `browser` 时,`browser.enabled=true` 不会恢复该 CLI 子命令。 相关内容:[浏览器工具](/zh-CN/tools/browser#missing-browser-command-or-tool) ## 配置文件 -配置文件是具名的浏览器路由配置。实际使用中: +配置文件是命名的浏览器路由配置。实际使用中: -- `openclaw`:启动或连接到一个专用的、由 OpenClaw 管理的 Chrome 实例(隔离的用户数据目录)。 +- `openclaw`:启动或连接到专用的 OpenClaw 托管 Chrome 实例(隔离的用户数据目录)。 - `user`:通过 Chrome DevTools MCP 控制你现有的已登录 Chrome 会话。 - 自定义 CDP 配置文件:指向本地或远程 CDP 端点。 @@ -106,7 +106,7 @@ openclaw browser create-profile --name remote --cdp-url https://browser-host.exa openclaw browser delete-profile --name work ``` -使用特定配置文件: +使用指定配置文件: ```bash openclaw browser --browser-profile work tabs @@ -125,7 +125,7 @@ openclaw browser focus docs openclaw browser close t1 ``` -`tabs` 会先返回 `suggestedTargetId`,然后是稳定的 `tabId`(例如 `t1`)、可选标签以及原始 `targetId`。智能体应将 `suggestedTargetId` 传回给 `focus`、`close`、快照和操作。你可以使用 `open --label`、`tab new --label` 或 `tab label` 分配标签;标签、标签页 ID、原始 target ID,以及唯一的 target-id 前缀都可接受。 +`tabs` 会先返回 `suggestedTargetId`,然后是稳定的 `tabId`(如 `t1`)、可选标签以及原始 `targetId`。智能体应将 `suggestedTargetId` 传回 `focus`、`close`、快照和操作中使用。你可以使用 `open --label`、`tab new --label` 或 `tab label` 分配标签;标签、标签页 id、原始 target id 以及唯一的 target-id 前缀都可被接受。 ## 快照 / 截图 / 操作 @@ -148,15 +148,16 @@ openclaw browser screenshot --labels 说明: - `--full-page` 仅用于页面截图;不能与 `--ref` 或 `--element` 组合使用。 -- `existing-session` / `user` 配置文件支持页面截图和基于快照输出的 `--ref` 截图,但不支持 CSS `--element` 截图。 +- `existing-session` / `user` 配置文件支持页面截图和基于快照输出中 `--ref` 的截图,但不支持基于 CSS `--element` 的截图。 - `--labels` 会在截图上叠加当前快照引用标签。 -- `snapshot --urls` 会将发现的链接目标追加到 AI 快照中,以便智能体选择直接导航目标,而不是仅凭链接文本猜测。 +- `snapshot --urls` 会将发现的链接目标追加到 AI 快照中,这样智能体可以选择直接的导航目标,而不是仅根据链接文本猜测。 导航 / 点击 / 输入(基于 ref 的 UI 自动化): ```bash openclaw browser navigate https://example.com openclaw browser click +openclaw browser click-coords 120 340 openclaw browser type "hello" openclaw browser press Enter openclaw browser hover @@ -168,7 +169,7 @@ openclaw browser wait --text "Done" openclaw browser evaluate --fn '(el) => el.textContent' --ref ``` -文件 + 对话框辅助: +文件 + 对话框辅助功能: ```bash openclaw browser upload /tmp/openclaw/uploads/file.pdf --ref @@ -220,7 +221,7 @@ openclaw browser trace stop --out trace.zip ## 通过 MCP 使用现有 Chrome -使用内置的 `user` 配置文件,或者创建你自己的 `existing-session` 配置文件: +使用内置的 `user` 配置文件,或创建你自己的 `existing-session` 配置文件: ```bash openclaw browser --browser-profile user tabs @@ -229,27 +230,27 @@ openclaw browser create-profile --name brave-live --driver existing-session --us openclaw browser --browser-profile chrome-live tabs ``` -这条路径仅适用于主机环境。对于 Docker、无头服务器、Browserless 或其他远程设置,请改用 CDP 配置文件。 +这一路径仅适用于主机本机。对于 Docker、无头服务器、Browserless 或其他远程设置,请改用 CDP 配置文件。 -当前 `existing-session` 的限制: +当前 existing-session 的限制: -- 基于快照的操作使用 ref,不使用 CSS 选择器 -- `click` 仅支持左键单击 +- 基于快照的操作使用 ref,而不是 CSS 选择器 +- `click` 仅支持左键点击 - `type` 不支持 `slowly=true` - `press` 不支持 `delayMs` -- `hover`、`scrollintoview`、`drag`、`select`、`fill` 和 `evaluate` 会拒绝每次调用的超时覆盖 +- `hover`、`scrollintoview`、`drag`、`select`、`fill` 和 `evaluate` 会拒绝按调用设置的超时覆盖 - `select` 仅支持一个值 - 不支持 `wait --load networkidle` -- 文件上传需要 `--ref` / `--input-ref`,不支持 CSS `--element`,并且当前一次仅支持一个文件 +- 文件上传要求使用 `--ref` / `--input-ref`,不支持 CSS `--element`,并且当前一次只支持一个文件 - 对话框钩子不支持 `--timeout` - 截图支持页面截图和 `--ref`,但不支持 CSS `--element` -- `responsebody`、下载拦截、PDF 导出和批量操作仍然需要托管浏览器或原始 CDP 配置文件 +- `responsebody`、下载拦截、PDF 导出和批量操作仍然需要受管浏览器或原始 CDP 配置文件 ## 远程浏览器控制(节点主机代理) -如果 Gateway 网关运行在与浏览器不同的机器上,请在安装了 Chrome/Brave/Edge/Chromium 的那台机器上运行一个**节点主机**。Gateway 网关会将浏览器操作代理到该节点(不需要单独的浏览器控制服务器)。 +如果 Gateway 网关运行在与浏览器不同的机器上,请在安装了 Chrome / Brave / Edge / Chromium 的机器上运行一个**节点主机**。Gateway 网关会将浏览器操作代理到该节点(不需要单独的浏览器控制服务器)。 -使用 `gateway.nodes.browser.mode` 控制自动路由,并在连接了多个节点时使用 `gateway.nodes.browser.node` 固定到特定节点。 +使用 `gateway.nodes.browser.mode` 控制自动路由,并使用 `gateway.nodes.browser.node` 在连接了多个节点时固定到特定节点。 安全性 + 远程设置:[浏览器工具](/zh-CN/tools/browser)、[远程访问](/zh-CN/gateway/remote)、[Tailscale](/zh-CN/gateway/tailscale)、[安全性](/zh-CN/gateway/security) diff --git a/docs/zh-CN/tools/browser-control.md b/docs/zh-CN/tools/browser-control.md index a79ff215a..c69735b4c 100644 --- a/docs/zh-CN/tools/browser-control.md +++ b/docs/zh-CN/tools/browser-control.md @@ -1,32 +1,32 @@ --- read_when: - - 通过本地控制 API 为智能体浏览器编写脚本或进行调试 + - 通过本地控制 API 对智能体浏览器进行脚本操作或调试 - 正在查找 `openclaw browser` CLI 参考 - - 使用快照和 refs 添加自定义浏览器自动化 + - 添加带有快照和 refs 的自定义浏览器自动化 summary: OpenClaw 浏览器控制 API、CLI 参考和脚本操作 title: 浏览器控制 API x-i18n: - generated_at: "2026-04-25T00:43:59Z" + generated_at: "2026-04-25T06:34:57Z" model: gpt-5.4 provider: openai - source_hash: ec7b6e83b231fefc9c4a63fabde9bdaeb2ea2b2a8ab64943e179a7af5ed4badc + source_hash: e9d18da48dfb6cf127fabbaa056411162640ab62e15690617138af3c23ee19c9 source_path: tools/browser-control.md workflow: 15 --- -有关设置、配置和故障排除,请参见 [Browser](/zh-CN/tools/browser)。 +有关设置、配置和故障排除,请参阅 [Browser](/zh-CN/tools/browser)。 本页是本地控制 HTTP API、`openclaw browser` -CLI 以及脚本模式(快照、refs、等待、调试流程)的参考文档。 +CLI,以及脚本模式(快照、refs、等待、调试流程)的参考文档。 ## 控制 API(可选) -仅用于本地集成时,Gateway 网关会公开一个小型 loopback HTTP API: +仅用于本地集成时,Gateway 网关会暴露一个小型的 loopback HTTP API: -- 状态 / 启动 / 停止:`GET /`、`POST /start`、`POST /stop` +- 状态/启动/停止:`GET /`、`POST /start`、`POST /stop` - 标签页:`GET /tabs`、`POST /tabs/open`、`POST /tabs/focus`、`DELETE /tabs/:targetId` -- 快照 / 截图:`GET /snapshot`、`POST /screenshot` +- 快照/截图:`GET /snapshot`、`POST /screenshot` - 操作:`POST /navigate`、`POST /act` -- Hooks:`POST /hooks/file-chooser`、`POST /hooks/dialog` +- 钩子:`POST /hooks/file-chooser`、`POST /hooks/dialog` - 下载:`POST /download`、`POST /wait/download` - 调试:`GET /console`、`POST /pdf` - 调试:`GET /errors`、`GET /requests`、`POST /trace/start`、`POST /trace/stop`、`POST /highlight` @@ -37,17 +37,17 @@ CLI 以及脚本模式(快照、refs、等待、调试流程)的参考文档 所有端点都接受 `?profile=`。 -如果已配置共享密钥 Gateway 网关鉴权,则浏览器 HTTP 路由也需要鉴权: +如果配置了共享密钥 Gateway 网关认证,浏览器 HTTP 路由也需要认证: - `Authorization: Bearer ` -- `x-openclaw-password: `,或使用该密码的 HTTP Basic 鉴权 +- `x-openclaw-password: ` 或使用该密码的 HTTP Basic auth -说明: +注意: -- 这个独立的 loopback 浏览器 API **不会**消费 trusted-proxy 或 +- 这个独立的 loopback 浏览器 API **不会** 使用受信任代理或 Tailscale Serve 身份标头。 - 如果 `gateway.auth.mode` 是 `none` 或 `trusted-proxy`,这些 loopback 浏览器 - 路由不会继承这些携带身份信息的模式;请将它们保持为仅 loopback。 + 路由不会继承这些携带身份信息的模式;请将它们仅保留在 loopback 中使用。 ### `/act` 错误契约 @@ -58,51 +58,51 @@ CLI 以及脚本模式(快照、refs、等待、调试流程)的参考文档 { "error": "", "code": "ACT_*" } ``` -当前 `code` 值: +当前的 `code` 值: -- `ACT_KIND_REQUIRED`(HTTP 400):缺少 `kind`,或其无法识别。 +- `ACT_KIND_REQUIRED`(HTTP 400):缺少 `kind` 或无法识别。 - `ACT_INVALID_REQUEST`(HTTP 400):操作负载未通过规范化或验证。 - `ACT_SELECTOR_UNSUPPORTED`(HTTP 400):在不支持的操作类型中使用了 `selector`。 -- `ACT_EVALUATE_DISABLED`(HTTP 403):`evaluate`(或 `wait --fn`)被配置禁用。 -- `ACT_TARGET_ID_MISMATCH`(HTTP 403):顶层或批处理的 `targetId` 与请求目标冲突。 -- `ACT_EXISTING_SESSION_UNSUPPORTED`(HTTP 501):现有会话 profile 不支持该操作。 +- `ACT_EVALUATE_DISABLED`(HTTP 403):配置中禁用了 `evaluate`(或 `wait --fn`)。 +- `ACT_TARGET_ID_MISMATCH`(HTTP 403):顶层或批量 `targetId` 与请求目标冲突。 +- `ACT_EXISTING_SESSION_UNSUPPORTED`(HTTP 501):现有会话配置文件不支持此操作。 -其他运行时失败仍可能返回 `{ "error": "" }`,而不包含 +其他运行时故障仍可能返回 `{ "error": "" }`,而没有 `code` 字段。 ### Playwright 要求 -某些功能(navigate / act / AI 快照 / 角色快照、元素截图、 +某些功能(navigate/act/AI snapshot/role snapshot、元素截图、 PDF)需要 Playwright。如果未安装 Playwright,这些端点会返回 明确的 501 错误。 -未安装 Playwright 时仍可使用的功能: +在没有 Playwright 时仍可使用的功能: - ARIA 快照 -- 当存在每标签页 CDP - WebSocket 时,对受管 `openclaw` 浏览器进行页面截图 -- 对 `existing-session` / Chrome MCP profiles 进行页面截图 -- 从快照输出中基于 ref 的 `existing-session` 截图(`--ref`) +- 当托管的 `openclaw` 浏览器具有每标签页 CDP + WebSocket 可用时的页面截图 +- `existing-session` / Chrome MCP 配置文件的页面截图 +- 从快照输出生成的 `existing-session` 基于 ref 的截图(`--ref`) 仍然需要 Playwright 的功能: - `navigate` - `act` -- AI 快照 / 角色快照 +- AI 快照 / role 快照 - 基于 CSS 选择器的元素截图(`--element`) - 完整浏览器 PDF 导出 -元素截图也会拒绝 `--full-page`;路由会返回 `fullPage is +元素截图也会拒绝 `--full-page`;该路由会返回 `fullPage is not supported for element screenshots`。 如果你看到 `Playwright is not available in this gateway build`,请修复 -内置浏览器插件运行时依赖,以确保已安装 `playwright-core`, +内置浏览器插件运行时依赖,确保已安装 `playwright-core`, 然后重启 Gateway 网关。对于打包安装,请运行 `openclaw doctor --fix`。 -对于 Docker,还需要按如下所示安装 Chromium 浏览器二进制文件。 +对于 Docker,还需按下文所示安装 Chromium 浏览器二进制文件。 #### Docker Playwright 安装 -如果你的 Gateway 网关在 Docker 中运行,请避免使用 `npx playwright`(npm 覆盖冲突)。 +如果你的 Gateway 网关运行在 Docker 中,请避免使用 `npx playwright`(会有 npm 覆盖冲突)。 请改用内置 CLI: ```bash @@ -110,26 +110,26 @@ docker compose run --rm openclaw-cli \ node /app/node_modules/playwright-core/cli.js install chromium ``` -若要持久化浏览器下载,请设置 `PLAYWRIGHT_BROWSERS_PATH`(例如, -`/home/node/.cache/ms-playwright`),并确保 `/home/node` 通过 -`OPENCLAW_HOME_VOLUME` 或 bind mount 持久化。参见 [Docker](/zh-CN/install/docker)。 +如需持久化浏览器下载内容,请设置 `PLAYWRIGHT_BROWSERS_PATH`(例如, +`/home/node/.cache/ms-playwright`),并确保通过 +`OPENCLAW_HOME_VOLUME` 或 bind mount 持久化 `/home/node`。参见 [Docker](/zh-CN/install/docker)。 ## 工作原理(内部) -一个小型 loopback 控制服务器接收 HTTP 请求,并通过 CDP 连接到基于 Chromium 的浏览器。高级操作(点击 / 输入 / 快照 / PDF)通过 CDP 之上的 Playwright 执行;当缺少 Playwright 时,只能使用非 Playwright 操作。智能体看到的是一个稳定接口,而底层的本地 / 远程浏览器和 profiles 可以自由切换。 +一个小型 loopback 控制服务器接受 HTTP 请求,并通过 CDP 连接到基于 Chromium 的浏览器。高级操作(点击/输入/快照/PDF)通过 CDP 之上的 Playwright 完成;当缺少 Playwright 时,仅提供非 Playwright 操作。智能体看到的是一个稳定接口,而底层的本地/远程浏览器和配置文件可以自由切换。 ## CLI 快速参考 -所有命令都接受 `--browser-profile ` 以指定某个 profile,接受 `--json` 以输出机器可读结果。 +所有命令都接受 `--browser-profile ` 以定位到特定配置文件,并接受 `--json` 以输出机器可读格式。 - + ```bash openclaw browser status openclaw browser start -openclaw browser stop # 对仅附加 / 远程 CDP 也会清除仿真 +openclaw browser stop # 也会清除仅附加/远程 CDP 上的模拟状态 openclaw browser tabs openclaw browser tab # 当前标签页的快捷方式 openclaw browser tab new @@ -147,7 +147,7 @@ openclaw browser close abcd1234 ```bash openclaw browser screenshot openclaw browser screenshot --full-page -openclaw browser screenshot --ref 12 # 或 --ref e12,用于角色 refs +openclaw browser screenshot --ref 12 # 或 --ref e12 openclaw browser screenshot --labels openclaw browser snapshot openclaw browser snapshot --format aria --limit 200 @@ -166,12 +166,13 @@ openclaw browser responsebody "**/api" --max-chars 5000 - + ```bash openclaw browser navigate https://example.com openclaw browser resize 1280 720 -openclaw browser click 12 --double # 或 e12,用于角色 refs +openclaw browser click 12 --double # 或 e12 用于 role refs +openclaw browser click-coords 120 340 # 视口坐标 openclaw browser type 23 "hello" --submit openclaw browser press Enter openclaw browser hover 44 @@ -193,7 +194,7 @@ openclaw browser trace stop - + ```bash openclaw browser cookies @@ -204,7 +205,7 @@ openclaw browser storage local set theme dark openclaw browser storage session clear openclaw browser set offline on openclaw browser set headers --headers-json '{"X-Debug":"1"}' -openclaw browser set credentials user pass # --clear 可移除 +openclaw browser set credentials user pass # 使用 --clear 删除 openclaw browser set geo 37.7749 -122.4194 --origin "https://example.com" openclaw browser set media dark openclaw browser set timezone America/New_York @@ -216,21 +217,21 @@ openclaw browser set device "iPhone 14" -说明: +注意: -- `upload` 和 `dialog` 是**预置**调用;请在触发文件选择器 / 对话框的点击或按键之前运行它们。 -- `click` / `type` / 等操作需要来自 `snapshot` 的 `ref`(数字 `12` 或角色 ref `e12`)。操作有意不支持 CSS 选择器。 -- 下载、trace 和 upload 路径受限于 OpenClaw 临时根目录:`/tmp/openclaw{,/downloads,/uploads}`(回退为 `${os.tmpdir()}/openclaw/...`)。 -- `upload` 也可以通过 `--input-ref` 或 `--element` 直接设置文件输入。 +- `upload` 和 `dialog` 是**预设**调用;请在触发文件选择器/对话框的点击或按键之前运行它们。 +- `click` / `type` / 等操作需要来自 `snapshot` 的 `ref`(数字 `12` 或 role ref `e12`)。操作有意不支持 CSS 选择器。当可见视口位置是唯一可靠目标时,请使用 `click-coords`。 +- 下载、trace 和 upload 路径被限制在 OpenClaw 临时根目录中:`/tmp/openclaw{,/downloads,/uploads}`(回退为:`${os.tmpdir()}/openclaw/...`)。 +- `upload` 还可以通过 `--input-ref` 或 `--element` 直接设置文件输入。 -快照标志速览: +快照标志一览: -- `--format ai`(安装了 Playwright 时为默认):AI 快照,带数字 refs(`aria-ref=""`)。 +- `--format ai`(安装 Playwright 时的默认值):带数字 refs 的 AI 快照(`aria-ref=""`)。 - `--format aria`:无障碍树,无 refs;仅用于检查。 -- `--efficient`(或 `--mode efficient`):紧凑角色快照预设。设置 `browser.snapshotDefaults.mode: "efficient"` 可将其设为默认值(参见 [Gateway 配置](/zh-CN/gateway/configuration-reference#browser))。 -- `--interactive`、`--compact`、`--depth`、`--selector` 会强制使用带 `ref=e12` refs 的角色快照。`--frame "