Docs: update zh-CN translations and pipeline

What:
- update zh-CN glossary, TM, and translator prompt
- regenerate zh-CN docs and apply targeted fixes
- add zh-CN AGENTS pipeline guidance

Why:
- address terminology/spacing feedback from #6995

Tests:
- pnpm build && pnpm check && pnpm test
This commit is contained in:
Josh Palmer
2026-02-03 13:23:00 -08:00
parent 9f03791aa9
commit a3ec2d0734
228 changed files with 10651 additions and 10475 deletions
+136 -125
View File
@@ -1,15 +1,15 @@
---
read_when:
- 添加智能体控制的浏览器自动化
- 调试 openclaw 为何干扰你自己 Chrome
- 在 macOS 应用中实现浏览器设置 + 生命周期
- 调试 openclaw 干扰你自己 Chrome 的问题
- 在 macOS 应用中实现浏览器设置生命周期管理
summary: 集成浏览器控制服务 + 操作命令
title: 浏览器(OpenClaw 托管)
x-i18n:
generated_at: "2026-02-01T21:42:00Z"
generated_at: "2026-02-03T09:26:06Z"
model: claude-opus-4-5
provider: pi
source_hash: 9f182ea9701becdd710a2d9ed0f481f6556c8e2611aab60ead27693924e4b8ca
source_hash: a868d040183436a1fb355130995e79782cb817b5ea298beaf1e1d2cb82e21c4c
source_path: tools/browser.md
workflow: 15
---
@@ -17,23 +17,23 @@ x-i18n:
# 浏览器(openclaw 托管)
OpenClaw 可以运行一个由智能体控制的**专用 Chrome/Brave/Edge/Chromium 配置文件**。
它与你的个人浏览器隔离,通过 Gateway网关内部的一个小型本地控制服务进行管理(仅限 local loopback)。
它与你的个人浏览器隔离,通过 Gateway 网关内部的小型本地控制服务进行管理(仅限 loopback)。
初学者视角:
新手视角:
- 可以把它看作一个**独立的、仅供智能体使用的浏览器**。
- `openclaw` 配置文件**不会**影响你的个人浏览器配置文件。
- 把它想象成一个**独立的、仅供智能体使用的浏览器**。
- `openclaw` 配置文件**不会**触及你的个人浏览器配置文件。
- 智能体可以在安全的通道中**打开标签页、读取页面、点击和输入**。
- 默认的 `chrome` 配置文件通过扩展中继使用**系统默认的 Chromium 浏览器**;切换到 `openclaw` 使用隔离的托管浏览器。
- 默认的 `chrome` 配置文件通过扩展中继使用**系统默认的 Chromium 浏览器**;切换到 `openclaw` 使用隔离的托管浏览器。
## 你能获得什么
## 功能概览
- 一个名为 **openclaw** 的独立浏览器配置文件(默认橙色主题)。
- 一个名为 **openclaw** 的独立浏览器配置文件(默认橙色主题)。
- 确定性标签页控制(列出/打开/聚焦/关闭)。
- 智能体操作(点击/输入/拖/选择)、快照、截图、PDF。
- 智能体操作(点击/输入/拖/选择)、快照、截图、PDF。
- 可选的多配置文件支持(`openclaw``work``remote` 等)。
此浏览器**不是**你的日常浏览器。它是用于智能体自动化和验证的安全、隔离界面
此浏览器**不是**你的日常浏览器。它是一个安全、隔离的界面,用于智能体自动化和验证。
## 快速开始
@@ -44,12 +44,12 @@ openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
```
如果出现 "Browser disabled",请在配置中启用它(见下文)并重启 Gateway网关。
如果出现"Browser disabled",请在配置中启用它(见下文)并重启 Gateway 网关。
## 配置文件:`openclaw` 与 `chrome`
- `openclaw`:托管的隔离浏览器(无需扩展)。
- `chrome`通过本地中继连接到你**系统浏览器**的扩展中继(需要将 OpenClaw 扩展附加到标签页)。
- `chrome`:到你**系统浏览器**的扩展中继(需要将 OpenClaw 扩展附加到标签页)。
如果你希望默认使用托管模式,请设置 `browser.defaultProfile: "openclaw"`
@@ -60,10 +60,10 @@ openclaw browser --browser-profile openclaw snapshot
```json5
{
browser: {
enabled: true, // 默认值:true
// cdpUrl: "http://127.0.0.1:18792", // 旧版单配置文件覆盖
remoteCdpTimeoutMs: 1500, // 远程 CDP HTTP 超时(毫秒)
remoteCdpHandshakeTimeoutMs: 3000, // 远程 CDP WebSocket 握手超时(毫秒)
enabled: true, // default: true
// cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)
remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)
defaultProfile: "chrome",
color: "#FF4500",
headless: false,
@@ -79,22 +79,22 @@ openclaw browser --browser-profile openclaw snapshot
}
```
说明
注意事项
- 浏览器控制服务绑定到 local loopback 的端口,该端口 `gateway.port` 派生(默认`18791`,即 gateway + 2)。中继使用下一个端口(`18792`)。
- 如果你覆盖了 Gateway网关端口(`gateway.port``OPENCLAW_GATEWAY_PORT`),派生的浏览器端口会相应偏移以保持在同一"族"内
- `cdpUrl` 未设置时默认为中继端口。
- `remoteCdpTimeoutMs` 适用于远程(非 local loopbackCDP 可达性检查。
- 浏览器控制服务绑定到 loopback 的端口,该端口 `gateway.port` 派生(默认:`18791`,即 gateway + 2)。中继使用下一个端口(`18792`)。
- 如果你覆盖了 Gateway 网关端口(`gateway.port``OPENCLAW_GATEWAY_PORT`),派生的浏览器端口会相应调整以保持在同一"系列"中
- 未设置时,`cdpUrl` 默认为中继端口。
- `remoteCdpTimeoutMs` 适用于远程(非 loopback)CDP 可达性检查。
- `remoteCdpHandshakeTimeoutMs` 适用于远程 CDP WebSocket 可达性检查。
- `attachOnly: true` 表示"永不启动本地浏览器;仅在已运行时附加"。
- `color` + 每个配置文件的 `color` 为浏览器 UI 着色,以便你识别当前活动的配置文件
- 默认配置文件 `chrome`(扩展中继)。使用 `defaultProfile: "openclaw"` 切换到托管浏览器。
- 自动检测顺序:如果系统默认浏览器是基于 Chromium 的则使用它;否则 Chrome → Brave → Edge → Chromium → Chrome Canary 顺序查找
- 本地 `openclaw` 配置文件会自动分配 `cdpPort`/`cdpUrl`——仅在远程 CDP 时才需要手动设置。
- `attachOnly: true` 表示"永不启动本地浏览器;仅在浏览器已运行时附加"。
- `color` + 每个配置文件的 `color` 为浏览器 UI 着色,以便你能看到哪个配置文件处于活动状态
- 默认配置文件 `chrome`(扩展中继)。使用 `defaultProfile: "openclaw"` 来使用托管浏览器。
- 自动检测顺序:如果系统默认浏览器是基于 Chromium 的则使用它;否则 Chrome → Brave → Edge → Chromium → Chrome Canary。
- 本地 `openclaw` 配置文件会自动分配 `cdpPort`/`cdpUrl` — 仅为远程 CDP 设置这些
## 使用 Brave(或其他基于 Chromium 的浏览器)
如果你的**系统默认**浏览器是基于 Chromium 的(Chrome/Brave/Edge 等),OpenClaw 会自动使用它。设置 `browser.executablePath` 覆盖自动检测:
如果你的**系统默认**浏览器是基于 Chromium 的(Chrome/Brave/Edge 等),OpenClaw 会自动使用它。设置 `browser.executablePath` 覆盖自动检测:
CLI 示例:
@@ -127,9 +127,9 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome"
## 本地控制与远程控制
- **本地控制(默认):** Gateway网关启动 local loopback 控制服务,可启动本地浏览器。
- **远程控制(节点主机):** 在有浏览器的机器上运行节点主机;Gateway网关将浏览器操作代理到该节点。
- **远程 CDP** 设置 `browser.profiles.<name>.cdpUrl`(或 `browser.cdpUrl`)以附加到远程基于 Chromium 的浏览器。在这种情况下,OpenClaw 不会启动本地浏览器。
- **本地控制(默认):** Gateway 网关启动 loopback 控制服务,可启动本地浏览器。
- **远程控制(节点主机):** 在有浏览器的机器上运行节点主机;Gateway 网关将浏览器操作代理到该节点。
- **远程 CDP** 设置 `browser.profiles.<name>.cdpUrl`(或 `browser.cdpUrl`)以附加到远程基于 Chromium 的浏览器。在这种情况下,OpenClaw 不会启动本地浏览器。
远程 CDP URL 可以包含认证信息:
@@ -140,19 +140,19 @@ OpenClaw 在调用 `/json/*` 端点和连接 CDP WebSocket 时会保留认证信
## 节点浏览器代理(零配置默认)
如果你在有浏览器的机器上运行**节点主机**,OpenClaw 可以自动将浏览器工具调用路由到该节点,无需额外的浏览器配置。这是远程 Gateway网关的默认路径。
如果你在有浏览器的机器上运行**节点主机**,OpenClaw 可以自动将浏览器工具调用路由到该节点,无需任何额外的浏览器配置。这是远程 Gateway 网关的默认路径。
说明
注意事项
- 节点主机通过**代理命令**暴露其本地浏览器控制服务。
- 配置文件来自节点自`browser.profiles` 配置(与本地相同)。
- 节点主机通过**代理命令**暴露其本地浏览器控制服务
- 配置文件来自节点自`browser.profiles` 配置(与本地相同)。
- 如果不需要可以禁用:
- 在节点上:`nodeHost.browserProxy.enabled=false`
- 在 Gateway网关上:`gateway.nodes.browser.mode="off"`
- 在 Gateway 网关上:`gateway.nodes.browser.mode="off"`
## Browserless(托管远程 CDP
[Browserless](https://browserless.io) 是一个托管的 Chromium 服务,通过 HTTPS 暴露 CDP 端点。你可以将 OpenClaw 浏览器配置文件指向 Browserless 区域端点,并使用 API 密钥进行认证。
[Browserless](https://browserless.io) 是一个托管的 Chromium 服务,通过 HTTPS 暴露 CDP 端点。你可以将 OpenClaw 浏览器配置文件指向 Browserless 区域端点,并使用你的 API 密钥进行认证。
示例:
@@ -173,82 +173,82 @@ OpenClaw 在调用 `/json/*` 端点和连接 CDP WebSocket 时会保留认证信
}
```
说明
注意事项
-`<BROWSERLESS_API_KEY>` 替换为你真实 Browserless 令牌。
- 选择与你的 Browserless 账户匹配的区域端点(参见其文档)。
-`<BROWSERLESS_API_KEY>` 替换为你真实 Browserless 令牌。
- 选择与你的 Browserless 账户匹配的区域端点(请参阅其文档)。
## 安全性
核心要点
核心理念
- 浏览器控制仅限 local loopback;访问通过 Gateway网关的认证或节点配对进行。
- 保持 Gateway网关和所有节点主机在私有网络上(Tailscale);避免公开暴露。
- 将远程 CDP URL/令牌视为敏感信息;建议使用环境变量或密钥管理器。
- 浏览器控制仅限 loopback;访问通过 Gateway 网关的认证或节点配对进行。
- Gateway 网关和任何节点主机保持在私有网络上(Tailscale);避免公开暴露。
- 将远程 CDP URL/令牌视为机密;优先使用环境变量或密钥管理器。
远程 CDP 建议
远程 CDP 提示
- 尽可能使用 HTTPS 端点和短期令牌。
- 避免将长期有效的令牌直接嵌入配置文件中
- 避免在配置文件中直接嵌入长期令牌
## 配置文件(多浏览器)
OpenClaw 支持多个命名配置文件(路由配置)。配置文件可以是:
- **openclaw 托管**:专用基于 Chromium 的浏览器实例,拥有独立的用户数据目录 + CDP 端口
- **远程**:显式 CDP URL(在其他地方运行的基于 Chromium 的浏览器)
- **扩展中继**:通过本地中继 + Chrome 扩展连接你现有的 Chrome 标签页
- **openclaw 托管**具有独立用户数据目录和 CDP 端口的专用基于 Chromium 的浏览器实例
- **远程**:显式 CDP URL(在其他地方运行的基于 Chromium 的浏览器)
- **扩展中继**:通过本地中继 + Chrome 扩展访问你现有的 Chrome 标签页
默认值:
- 如果缺少 `openclaw` 配置文件,会自动创建。
- `chrome` 配置文件是内置的 Chrome 扩展中继(默认指向 `http://127.0.0.1:18792`)。
- `chrome` 配置文件是内置的,用于 Chrome 扩展中继(默认指向 `http://127.0.0.1:18792`)。
- 本地 CDP 端口默认从 **1880018899** 分配。
- 删除配置文件会将其本地数据目录移至废纸篓
- 删除配置文件会将其本地数据目录移至回收站
所有控制端点接受 `?profile=<name>`CLI 使用 `--browser-profile`
## Chrome 扩展中继(使用你现有的 Chrome)
OpenClaw 可以通过本地 CDP 中继 + Chrome 扩展驱动**你现有的 Chrome 标签页**(无需单独的 "openclaw" Chrome 实例)。
OpenClaw 可以通过本地 CDP 中继 + Chrome 扩展驱动**你现有的 Chrome 标签页**(无需单独的"openclaw"Chrome 实例)。
完整指南:[Chrome 扩展](/tools/chrome-extension)
流程:
- Gateway网关在本地运行(同一台机器)或节点主机在浏览器所在机器上运行。
- 本地**中继服务器**在 local loopback `cdpUrl` 上监听(默认:`http://127.0.0.1:18792`)。
- 你点击标签页上的 **OpenClaw Browser Relay** 扩展图标附加(不会自动附加)。
- 智能体通过普通的 `browser` 工具控制该标签页,选择正确的配置文件即可
- Gateway 网关在本地运行(同一台机器)或节点主机在浏览器所在机器上运行。
- 本地**中继服务器**在 loopback `cdpUrl` 上监听(默认:`http://127.0.0.1:18792`)。
- 你点击标签页上的 **OpenClaw Browser Relay** 扩展图标附加(不会自动附加)。
- 智能体通过选择正确的配置文件,使用普通的 `browser` 工具控制该标签页。
如果 Gateway网关在其他地方运行,请在浏览器所在机器上运行节点主机,以便 Gateway网关可以代理浏览器操作。
如果 Gateway 网关在其他地方运行,请在浏览器所在机器上运行节点主机,以便 Gateway 网关可以代理浏览器操作。
### 沙箱会话
如果智能体会话处于沙箱中`browser` 工具可能默认使用 `target="sandbox"`(沙箱浏览器)。
Chrome 扩展中继接管需要宿主浏览器控制,因此:
如果智能体会话是沙箱隔离的`browser` 工具可能默认 `target="sandbox"`(沙箱浏览器)。
Chrome 扩展中继接管需要主浏览器控制,因此要么
- 非沙箱模式运行会话,或者
- 非沙箱模式运行会话,或者
- 设置 `agents.defaults.sandbox.browser.allowHostControl: true` 并在调用工具时使用 `target="host"`
### 设置
1. 加载扩展(开发/未打包模式):
1. 加载扩展(开发/未打包):
```bash
openclaw browser extension install
```
- Chrome → `chrome://extensions` → 启用"开发者模式"
- "加载已解压的扩展程序" → 选择 `openclaw browser extension path` 输出的目录
- 固定扩展,然后在你想要控制的标签页上点击它(徽章显示 `ON`)。
- "加载已解压的扩展程序" → 选择 `openclaw browser extension path` 打印的目录
- 固定扩展,然后在你想要控制的标签页上点击它(徽章显示 `ON`)。
2. 使用:
2. 使用
- CLI`openclaw browser --browser-profile chrome tabs`
- 智能体工具:`browser`,设置 `profile="chrome"`
- 智能体工具:`browser` 配合 `profile="chrome"`
可选:如果你想使用不同的名称或中继端口,创建自己的配置文件:
可选:如果你想不同的名称或中继端口,创建自己的配置文件:
```bash
openclaw browser create-profile \
@@ -258,20 +258,20 @@ openclaw browser create-profile \
--color "#00AA00"
```
说明
注意事项
- 此模式依赖 Playwright-on-CDP 进行大部分操作(截图/快照/操作)。
- 再次点击扩展图标即可断开
- 此模式依赖 Playwright-on-CDP 进行大多数操作(截图/快照/操作)。
- 再次点击扩展图标可分离
## 隔离保证
- **专用用户数据目录**绝不接触你的个人浏览器配置文件。
- **专用用户数据目录**永不触及你的个人浏览器配置文件。
- **专用端口**:避免使用 `9222` 以防止与开发工作流冲突。
- **确定性标签页控制**:通过 `targetId` 定位标签页,而非"最后一个标签页"。
## 浏览器选择
本地启动时,OpenClaw 按以下顺序选择第一个可用的:
本地启动时,OpenClaw 选择第一个可用的:
1. Chrome
2. Brave
@@ -279,9 +279,9 @@ openclaw browser create-profile \
4. Chromium
5. Chrome Canary
你可以通过 `browser.executablePath` 覆盖。
你可以使用 `browser.executablePath` 覆盖。
平台:
平台:
- macOS:检查 `/Applications``~/Applications`
- Linux:查找 `google-chrome``brave``microsoft-edge``chromium` 等。
@@ -289,7 +289,7 @@ openclaw browser create-profile \
## 控制 API(可选)
仅用于本地集成,Gateway网关暴露一个小型 local loopback HTTP API
仅用于本地集成,Gateway 网关暴露一个小型 loopback HTTP API
- 状态/启动/停止:`GET /``POST /start``POST /stop`
- 标签页:`GET /tabs``POST /tabs/open``POST /tabs/focus``DELETE /tabs/:targetId`
@@ -308,9 +308,20 @@ openclaw browser create-profile \
### Playwright 要求
部分功能(导航/操作/AI 快照/角色快照、元素截图、PDF)需要 Playwright。如果未安装 Playwright,这些端点会返回明确的 501 错误。ARIA 快照和基本截图 openclaw 托管的 Chrome 仍然可用。对于 Chrome 扩展中继驱动,ARIA 快照和截图需要 Playwright。
某些功能(navigate/act/AI 快照/角色快照、元素截图、PDF)需要 Playwright。如果未安装 Playwright,这些端点会返回明确的 501 错误。ARIA 快照和基本截图对于 openclaw 托管的 Chrome 仍然有效。对于 Chrome 扩展中继驱动程序ARIA 快照和截图需要 Playwright。
如果你看到 `Playwright is not available in this gateway build`,请安装完整的 Playwright 包(而非 `playwright-core`)并重启 Gateway网关,或者重新安装带浏览器支持的 OpenClaw。
如果你看到 `Playwright is not available in this gateway build`,请安装完整的 Playwright 包(不是 `playwright-core`)并重启 Gateway 网关,或者重新安装带浏览器支持的 OpenClaw。
#### Docker Playwright 安装
如果你的 Gateway 网关在 Docker 中运行,避免使用 `npx playwright`(npm 覆盖冲突)。改用捆绑的 CLI:
```bash
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` 或绑定挂载持久化。参见 [Docker](/install/docker)。
## 工作原理(内部)
@@ -321,12 +332,12 @@ openclaw browser create-profile \
- 对于高级操作(点击/输入/快照/PDF),它在 CDP 之上使用 **Playwright**
- 当缺少 Playwright 时,仅非 Playwright 操作可用。
这种设计使智能体保持在稳定、确定性的接口上,同时允许你切换本地/远程浏览器和配置文件。
这种设计使智能体保持在稳定、确定性的接口上,同时让你可以切换本地/远程浏览器和配置文件。
## CLI 快速参考
所有命令接受 `--browser-profile <name>` 来指定配置文件。
所有命令也接受 `--json` 来获取机器可读的输出(稳定的负载格式)。
所有命令接受 `--browser-profile <name>` 以定位特定配置文件。
所有命令也接受 `--json` 以获得机器可读的输出(稳定的负载)。
基础操作:
@@ -404,41 +415,41 @@ openclaw browser create-profile \
- `openclaw browser set locale en-US`
- `openclaw browser set device "iPhone 14"`
说明
注意事项
- `upload``dialog` 是**预**调用;在触发选择器/对话框的点击/按键之前运行它们。
- `upload` 可以通过 `--input-ref``--element` 直接设置文件输入。
- `upload``dialog` 是**预**调用;在触发选择器/对话框的点击/按键之前运行它们。
- `upload` 可以通过 `--input-ref``--element` 直接设置文件输入。
- `snapshot`
- `--format ai`(安装 Playwright 时的默认值):返回带有数字引用`aria-ref="<n>"`的 AI 快照
- `--format aria`:返回无障碍树(无引用;仅供检查)。
- `--efficient`(或 `--mode efficient`):紧凑角色快照预设(交互式 + 紧凑 + 深度 + 低的 maxChars)。
- 配置默认值(仅限工具/CLI):设置 `browser.snapshotDefaults.mode: "efficient"` 以在调用者未传递模式时使用高效快照(参见 [Gateway网关配置](/gateway/configuration#browser-openclaw-managed-browser))。
- 角色快照选项(`--interactive``--compact``--depth``--selector`)强制使用基于角色的快照,引用格式如 `ref=e12`
- `--frame "<iframe 选择器>"` 将角色快照限定 iframe 范围内(配合角色引用如 `e12` 使用)。
- `--interactive` 输出扁平的、易于选的交互元素列表(最适合驱动操作)。
- `--labels` 添加一个带有叠加引用标签的视口截图(输出 `MEDIA:<path>`)。
- `click`/`type` 等需要来自 `snapshot``ref`(数字 `12` 或角色引用 `e12`)。
操作意不支持 CSS 选择器。
- `--format ai`(安装 Playwright 时的默认值):返回带有数字 ref 的 AI 快照`aria-ref="<n>"`)。
- `--format aria`:返回无障碍树(无 ref;仅供检查)。
- `--efficient`(或 `--mode efficient`):紧凑角色快照预设(interactive + compact + depth + 低的 maxChars)。
- 配置默认值(仅限工具/CLI):设置 `browser.snapshotDefaults.mode: "efficient"` 以在调用者未传递模式时使用高效快照(参见 [Gateway 网关配置](/gateway/configuration#browser-openclaw-managed-browser))。
- 角色快照选项(`--interactive``--compact``--depth``--selector`)强制使用带有 `ref=e12` 等 ref 的基于角色的快照。
- `--frame "<iframe selector>"` 将角色快照范围限定 iframe(与 `e12` 等角色 ref 配合使用)。
- `--interactive` 输出一个扁平的、易于选的交互元素列表(最适合驱动操作)。
- `--labels` 添加一个带有叠加 ref 标签的视口截图(打印 `MEDIA:<path>`)。
- `click`/`type` 等需要来自 `snapshot``ref`(数字 `12` 或角色 ref `e12`)。
操作意不支持 CSS 选择器。
## 快照和引用
## 快照和 ref
OpenClaw 支持两种"快照"风格:
- **AI 快照(数字引用**`openclaw browser snapshot`(默认;`--format ai`
- 输出:包含数字引用的文本快照。
- **AI 快照(数字 ref**`openclaw browser snapshot`(默认;`--format ai`
- 输出:包含数字 ref 的文本快照。
- 操作:`openclaw browser click 12``openclaw browser type 23 "hello"`
- 内部通过 Playwright 的 `aria-ref` 解析引用
- 内部通过 Playwright 的 `aria-ref` 解析 ref
- **角色快照(角色引用`e12`**`openclaw browser snapshot --interactive`(或 `--compact``--depth``--selector``--frame`
- 输出:带有 `[ref=e12]`以及可选的 `[nth=1]`)的基于角色的列表/树。
- **角色快照(角色 ref `e12`**`openclaw browser snapshot --interactive`(或 `--compact``--depth``--selector``--frame`
- 输出:带有 `[ref=e12]`可选的 `[nth=1]`)的基于角色的列表/树。
- 操作:`openclaw browser click e12``openclaw browser highlight e12`
- 内部通过 `getByRole(...)` 解析引用(重复时加上 `nth()`)。
- 内部通过 `getByRole(...)`(加上重复项的 `nth()`解析 ref
- 添加 `--labels` 可包含带有叠加 `e12` 标签的视口截图。
引用行为:
ref 行为:
- 引用在**页面导航后不稳定**;如果操作失败,重新运行 `snapshot` 并使用新的引用
- 如果角色快照使用 `--frame`,角色引用将限定在该 iframe 范围内,直到下一次角色快照。
- ref 在**导航之间不稳定**;如果出错,重新运行 `snapshot` 并使用新的 ref
- 如果角色快照使用 `--frame` 拍摄的,角色 ref 将限定在该 iframe 内,直到下一次角色快照。
## 等待增强功能
@@ -448,9 +459,9 @@ OpenClaw 支持两种"快照"风格:
- `openclaw browser wait --url "**/dash"`
- 等待加载状态:
- `openclaw browser wait --load networkidle`
- 等待 JS 谓词
- 等待 JS 断言
- `openclaw browser wait --fn "window.ready===true"`
- 等待选择器变可见:
- 等待选择器变可见:
- `openclaw browser wait "#main"`
这些可以组合使用:
@@ -465,18 +476,18 @@ openclaw browser wait "#main" \
## 调试工作流
当操作失败时(例如 "not visible"、"strict mode violation"、"covered"):
当操作失败时(例如"not visible"、"strict mode violation"、"covered"):
1. `openclaw browser snapshot --interactive`
2. 使用 `click <ref>` / `type <ref>`(在交互模式下优先使用角色引用
3. 如果仍然失败:`openclaw browser highlight <ref>` 查看 Playwright 定位目标
2. 使用 `click <ref>` / `type <ref>`(在交互模式下优先使用角色 ref
3. 如果仍然失败:`openclaw browser highlight <ref>` 查看 Playwright 定位目标
4. 如果页面行为异常:
- `openclaw browser errors --clear`
- `openclaw browser requests --filter api --clear`
5. 深度调试:录制追踪
5. 深度调试:录制 trace
- `openclaw browser trace start`
- 重现问题
- `openclaw browser trace stop`输出 `TRACE:<path>`
- `openclaw browser trace stop`打印 `TRACE:<path>`
## JSON 输出
@@ -491,9 +502,9 @@ openclaw browser requests --filter api --json
openclaw browser cookies --json
```
JSON 格式的角色快照包含 `refs` 以及一个小 `stats` 块(行数/字符数/引用数/交互元素数),以便工具可以推负载大小和密度。
JSON 格式的角色快照包含 `refs` 加上一个小 `stats` 块(lines/chars/refs/interactive),以便工具可以推负载大小和密度。
## 状态和环境调节
## 状态和环境开关
这些对于"让网站表现得像 X"的工作流很有用:
@@ -501,42 +512,42 @@ JSON 格式的角色快照包含 `refs` 以及一个小型 `stats` 块(行数/
- 存储:`storage local|session get|set|clear`
- 离线:`set offline on|off`
- 请求头:`set headers --json '{"X-Debug":"1"}'`(或 `--clear`
- HTTP 基本认证:`set credentials user pass`(或 `--clear`
- HTTP basic 认证:`set credentials user pass`(或 `--clear`
- 地理位置:`set geo <lat> <lon> --origin "https://example.com"`(或 `--clear`
- 媒体:`set media dark|light|no-preference|none`
- 时区 / 语言区域`set timezone ...``set locale ...`
- 设备 / 视口:
- 时区/语言环境`set timezone ...``set locale ...`
- 设备/视口:
- `set device "iPhone 14"`Playwright 设备预设)
- `set viewport 1280 720`
## 安全与隐私
- openclaw 浏览器配置文件可能包含已登录的会话;请将其视为敏感数据
- `browser act kind=evaluate` / `openclaw browser evaluate``wait --fn` 在页面上下文中执行任意 JavaScript。提示注入可能操纵此功能。如果不需要,请通过 `browser.evaluateEnabled=false` 禁用。
- 有关登录和反机器人注意事项(X/Twitter 等),请参阅[浏览器登录 + X/Twitter 发帖](/tools/browser-login)。
- 保持 Gateway网关/节点主机私有(仅限 local loopback 或 tailnet)。
- openclaw 浏览器配置文件可能包含已登录的会话;请将其视为敏感信息
- `browser act kind=evaluate` / `openclaw browser evaluate``wait --fn` 在页面上下文中执行任意 JavaScript。提示注入可能操纵。如果不需要,请使用 `browser.evaluateEnabled=false` 禁用
- 有关登录和反机器人注意事项(X/Twitter 等),请参阅 [浏览器登录 + X/Twitter 发帖](/tools/browser-login)。
- 保持 Gateway 网关/节点主机私有(仅限 loopback 或 tailnet)。
- 远程 CDP 端点功能强大;请通过隧道保护它们。
## 故障排除
有关 Linux 特定问题(特别是 snap Chromium),请参阅[浏览器故障排除](/tools/browser-linux-troubleshooting)。
有关 Linux 特定问题(特别是 snap Chromium),请参阅[浏览器故障排除](/tools/browser-linux-troubleshooting)。
## 智能体工具 + 控制工作原理
智能体获得**一个工具**用于浏览器自动化:
- `browser`状态/启动/停止/标签页/打开/聚焦/关闭/快照/截图/导航/操作
- `browser`status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
映射方式:
- `browser snapshot` 返回稳定的 UI 树(AI 或 ARIA)。
- `browser act` 使用快照 `ref` ID 来点击/输入/拖/选择。
- `browser act` 使用快照 `ref` ID 来点击/输入/拖/选择。
- `browser screenshot` 捕获像素(整页或元素)。
- `browser` 接受:
- `profile` 来选择命名的浏览器配置文件(openclaw、chrome 或远程 CDP)。
- `target``sandbox` | `host` | `node`)来选择浏览器所在位置。
- 在沙箱会话中,`target: "host"` 需要 `agents.defaults.sandbox.browser.allowHostControl=true`
- 如果省略 `target`:沙箱会话默认为 `sandbox`,非沙箱会话默认为 `host`
- 如果连接了支持浏览器的节点,工具可能会自动路由到该节点,除非你指定 `target="host"``target="node"`
- 如果连接了具有浏览器能力的节点,工具可能会自动路由到该节点,除非你指定 `target="host"``target="node"`
这使智能体保持确定性避免脆弱的选择器。
这使智能体保持确定性避免脆弱的选择器。