作者注:完整的 OpenClaw 浏览器控制教程,详解 CDP 协议集成、元素快照、表单填写、截图导航等核心功能,帮助开发者快速实现网页自动化任务
想让 AI 助手自动帮你填写表单、抓取网页数据、生成截图?OpenClaw Browser 能力正是为此而生。它通过 Chrome DevTools Protocol (CDP) 提供完整的浏览器控制能力,让你的 AI Agent 真正能够操作网页,而不只是"聊"网页。
核心价值: 读完本文,你将学会使用 OpenClaw 的 5 个核心浏览器功能,实现从页面导航到表单自动化的完整工作流。

OpenClaw Browser 核心要点
| 要点 | 说明 | 价值 |
|---|---|---|
| CDP 协议控制 | 通过 Chrome DevTools Protocol 直接控制浏览器 | 绕过 GUI 限制,机器速度执行操作 |
| 智能元素引用 | Snapshot 系统自动识别可交互元素并编号 | 无需手写选择器,AI 直接引用元素 |
| 隔离浏览器环境 | 独立的 OpenClaw 浏览器配置文件 | 与个人浏览数据完全分离,安全可控 |
| 多种快照模式 | AI Snapshot 和 Role Snapshot 两种模式 | 适配不同场景的元素识别需求 |
| 完整动作支持 | 点击、输入、拖拽、截图、PDF 导出 | 覆盖所有常见网页自动化操作 |
OpenClaw Browser 工作原理
OpenClaw 的浏览器控制能力基于一个核心理念:直接代码执行,而非视觉推断。传统的 AI 网页操作需要截图、识别界面元素,容易出错且速度慢。OpenClaw 则通过 CDP 协议直接与浏览器引擎通信,实现毫秒级响应。
系统架构分为三层:
- 浏览器层: 独立的 Chromium 实例,与个人浏览器完全隔离
- 控制层: Gateway HTTP API 提供统一的控制接口
- 代理层: AI 模型通过 OpenClaw CLI 调用浏览器操作
这种架构的优势是安全和可控。你的个人浏览数据不会被 AI 访问,所有自动化操作都在隔离环境中进行。
🎯 实践建议: OpenClaw Browser 需要调用 AI 大模型来理解网页内容和决策操作。通过 API易 apiyi.com 可以获取 Claude、GPT 等模型的 API,统一接口调用,让你的浏览器自动化更加智能。
OpenClaw Browser 5 大核心功能详解
功能一:浏览器配置管理
OpenClaw 支持三种浏览器配置模式,满足不同使用场景:
| 配置模式 | 说明 | 使用场景 |
|---|---|---|
| openclaw | 独立 Chromium 实例,专属用户数据目录 | 推荐的默认模式,最安全 |
| chrome | 通过扩展控制现有 Chrome 标签页 | 需要利用已登录状态时 |
| remote | 连接远程 CDP 端点,如 Browserless | 云端部署或无头服务 |
创建自定义配置文件:
openclaw browser create-profile --name myprofile --color "#FF6B35"
配置存储在 ~/.openclaw/openclaw.json 文件中,支持以下选项:
{
"browser": {
"headless": false,
"noSandbox": false,
"executablePath": "/path/to/chrome"
},
"profiles": {
"myprofile": {
"cdpUrl": "http://localhost:9222",
"color": "#FF6B35"
}
}
}
功能二:页面导航与标签管理
导航控制是浏览器自动化的基础。OpenClaw 提供完整的标签页管理能力:
打开网页:
# 在 OpenClaw 配置文件中打开 URL
openclaw browser --browser-profile openclaw open https://example.com
# 列出所有打开的标签页
openclaw browser tabs
# 聚焦到指定标签页
openclaw browser focus <tab-id>
# 关闭标签页
openclaw browser close <tab-id>
智能等待机制:
页面加载完成的判断是自动化的难点。OpenClaw 支持多种等待条件:
openclaw browser wait "#main" \
--url "**/dashboard" \
--load networkidle \
--fn "window.ready===true" \
--timeout-ms 15000
| 等待类型 | 参数 | 说明 |
|---|---|---|
| URL 匹配 | --url |
等待 URL 变化到指定模式 |
| 加载状态 | --load |
支持 load、domcontentloaded、networkidle |
| 选择器 | 默认参数 | 等待元素出现在 DOM 中 |
| JS 条件 | --fn |
自定义 JavaScript 表达式 |
功能三:元素快照与引用系统
这是 OpenClaw Browser 最强大的功能之一。快照系统自动扫描页面,为所有可交互元素分配引用编号,AI 可以直接使用这些编号操作元素,无需编写 CSS 选择器。
两种快照模式:
| 模式 | 引用格式 | 特点 | 依赖 |
|---|---|---|---|
| AI Snapshot | 数字 (12, 23) | 默认格式,适合 AI 处理 | Playwright |
| Role Snapshot | 元素引用 (e12, e23) | 基于 Accessibility Tree | Playwright |
获取快照:
# AI 快照(数字引用)
openclaw browser snapshot
# Role 快照(带交互标记)
openclaw browser snapshot --interactive
# 带可视化标签的截图
openclaw browser snapshot --labels
快照输出示例:
[1] 搜索框 <input type="text" placeholder="搜索...">
[2] 登录按钮 <button>登录</button>
[3] 注册链接 <a href="/register">免费注册</a>
[4] 导航菜单 <nav>产品 | 价格 | 文档</nav>
重要提示: 元素引用在页面导航后会失效。如果操作失败,需要重新获取快照并使用新的引用编号。
功能四:元素交互操作
基于快照的引用系统,OpenClaw 支持丰富的元素交互操作:
点击操作:
# 点击编号为 12 的元素
openclaw browser click 12
# 使用 Role 引用
openclaw browser click e12
# 高亮显示元素(调试用)
openclaw browser highlight e12
输入文本:
# 在编号 23 的输入框中输入文本
openclaw browser type 23 "Hello OpenClaw"
# 清空后输入
openclaw browser type 23 "新内容" --clear
表单填写:
# 批量填写多个字段
openclaw browser fill \
--field "username:myuser" \
--field "password:mypass" \
--field "email:[email protected]"
其他交互:
| 操作 | 命令 | 说明 |
|---|---|---|
| 拖拽 | drag 12 23 |
从元素 12 拖拽到元素 23 |
| 选择 | select 12 "option1" |
在下拉框选择选项 |
| 滚动 | scroll --y 500 |
垂直滚动 500 像素 |
| 悬停 | hover 12 |
鼠标悬停在元素上 |
💡 使用技巧: 表单自动化是 OpenClaw Browser 的核心应用场景。结合 AI 模型的理解能力,可以智能识别表单结构并自动填写。通过 API易 apiyi.com 获取 Claude API,可以让你的表单自动化更加智能。
OpenClaw Browser 快速上手
极简示例
以下是最简单的浏览器自动化流程:
# 1. 启动浏览器
openclaw browser --browser-profile openclaw start
# 2. 打开网页
openclaw browser open https://example.com
# 3. 获取页面快照
openclaw browser snapshot
# 4. 点击元素(假设搜索框是 [1])
openclaw browser click 1
# 5. 输入搜索内容
openclaw browser type 1 "OpenClaw tutorial"
# 6. 截图保存
openclaw browser screenshot --output result.png
查看完整自动化脚本示例
#!/bin/bash
# OpenClaw Browser 自动化示例脚本
# 用途:自动登录并抓取数据
PROFILE="openclaw"
TARGET_URL="https://example.com/login"
OUTPUT_DIR="./screenshots"
# 确保输出目录存在
mkdir -p $OUTPUT_DIR
# 启动浏览器
echo "启动 OpenClaw Browser..."
openclaw browser --browser-profile $PROFILE start
# 等待浏览器就绪
sleep 2
# 导航到登录页
echo "导航到登录页面..."
openclaw browser open $TARGET_URL
# 等待页面加载
openclaw browser wait "#login-form" --timeout-ms 10000
# 获取页面快照
echo "分析页面结构..."
SNAPSHOT=$(openclaw browser snapshot --json)
# 填写登录表单
echo "填写登录信息..."
openclaw browser type 1 "[email protected]" # 用户名字段
openclaw browser type 2 "password123" # 密码字段
# 点击登录按钮
openclaw browser click 3
# 等待登录完成
openclaw browser wait --url "**/dashboard" --timeout-ms 15000
# 截图保存结果
echo "保存截图..."
openclaw browser screenshot --output "$OUTPUT_DIR/dashboard.png"
# 获取登录后的 Cookie
openclaw browser cookies --json > "$OUTPUT_DIR/cookies.json"
echo "自动化完成!"
Python 集成示例
如果你更喜欢用 Python 控制 OpenClaw Browser:
import subprocess
import json
def openclaw_browser(command: str) -> str:
"""执行 OpenClaw Browser 命令并返回结果"""
result = subprocess.run(
f"openclaw browser {command}",
shell=True,
capture_output=True,
text=True
)
return result.stdout
# 打开页面
openclaw_browser("open https://example.com")
# 获取快照
snapshot = openclaw_browser("snapshot --json")
elements = json.loads(snapshot)
# 点击第一个按钮
openclaw_browser("click 1")
# 截图
openclaw_browser("screenshot --output page.png")
建议: 通过 API易 apiyi.com 获取 AI 模型 API,可以让 Python 脚本结合 AI 理解能力,实现更智能的网页自动化。
OpenClaw Browser 三种配置模式对比

| 维度 | OpenClaw 模式 | Chrome 扩展模式 | 远程 CDP 模式 |
|---|---|---|---|
| 隔离性 | 完全隔离,独立用户数据 | 共享浏览器状态 | 取决于远程配置 |
| 登录状态 | 需重新登录 | 可利用现有登录 | 需单独处理 |
| 安装复杂度 | 开箱即用 | 需安装扩展 | 需配置远程服务 |
| 适用场景 | 自动化任务、数据抓取 | 调试、利用现有会话 | 云端部署、无头浏览 |
| 安全风险 | 最低 | 中等 | 取决于网络环境 |
模式选择建议
选择 OpenClaw 模式:
- 执行自动化任务(表单填写、数据抓取)
- 测试网站功能
- 需要完全隔离的安全环境
选择 Chrome 扩展模式:
- 需要利用已登录的账号状态
- 调试复杂的多步骤流程
- 临时的一次性操作
选择远程 CDP 模式:
- 云服务器部署
- 使用 Browserless 等托管服务
- 需要并行运行多个浏览器实例
配置远程 CDP 示例:
{
"profiles": {
"remote": {
"cdpUrl": "wss://chrome.browserless.io?token=YOUR_TOKEN",
"color": "#00AA00"
}
}
}
🎯 部署建议: 生产环境推荐使用远程 CDP 模式配合 Browserless 服务。AI 模型调用可通过 API易 apiyi.com 统一管理,确保自动化流程稳定可靠。
OpenClaw Browser 高级功能
截图与视觉捕获
OpenClaw Browser 提供多种截图能力:
# 全页截图
openclaw browser screenshot --output full.png
# 指定元素截图
openclaw browser screenshot --selector "#main-content" --output element.png
# 带元素标签的截图(用于 AI 分析)
openclaw browser snapshot --labels --output labeled.png
# 导出 PDF
openclaw browser pdf --output page.pdf
状态管理
管理浏览器状态对于复杂自动化流程至关重要:
| 功能 | 命令 | 用途 |
|---|---|---|
| Cookie 管理 | cookies --json |
导出/导入登录状态 |
| LocalStorage | storage local --get key |
读写本地存储 |
| SessionStorage | storage session --set key value |
管理会话数据 |
| 控制台日志 | console --json |
获取页面日志 |
网络控制
# 设置请求头
openclaw browser headers --set "Authorization: Bearer token123"
# 模拟离线状态
openclaw browser offline --enable
# 设置地理位置
openclaw browser geolocation --lat 39.9042 --lng 116.4074
# 设置时区
openclaw browser timezone "Asia/Shanghai"
设备模拟
# 模拟 iPhone 设备
openclaw browser device --name "iPhone 14 Pro"
# 自定义视口
openclaw browser viewport --width 1920 --height 1080
常见问题
Q1: OpenClaw Browser 和 Playwright/Puppeteer 有什么区别?
核心区别在于 AI 集成能力。Playwright/Puppeteer 是传统的浏览器自动化库,需要开发者编写精确的选择器和逻辑。OpenClaw Browser 则通过 Snapshot 系统让 AI 模型能够"理解"页面结构,自动决策操作步骤。
技术上,OpenClaw Browser 底层实际使用 Playwright 作为 CDP 控制引擎,但上层抽象让 AI Agent 使用更加方便。
Q2: 元素引用失效怎么办?
元素引用 (如 [12] 或 e12) 在以下情况会失效:
- 页面导航到新 URL
- 页面内容动态更新
- 页面刷新
解决方法:操作失败时重新执行 openclaw browser snapshot 获取新的引用编号。建议在关键操作前都先获取最新快照。
Q3: 如何处理需要登录的网站?
三种方案:
- 自动登录: 使用表单填写功能自动输入用户名密码
- 复用 Cookie: 先手动登录后导出 Cookie,自动化时导入
- Chrome 扩展模式: 使用已登录的 Chrome 浏览器
对于涉及敏感操作的网站,建议通过 API易 apiyi.com 获取 AI 模型来智能处理验证码等安全措施。
Q4: Playwright 未安装导致功能受限怎么办?
部分高级功能(元素交互、PDF 导出、AI 快照)依赖 Playwright。安装方法:
# 安装 Playwright
npm install -g playwright
# 安装浏览器驱动
npx playwright install chromium
未安装 Playwright 时,基础的 ARIA 快照和截图功能仍可使用。
OpenClaw Browser 实战案例
案例一:自动登录并获取数据
这是最常见的浏览器自动化场景,完整流程如下:
# 第一步:启动浏览器并导航到登录页
openclaw browser --browser-profile openclaw start
openclaw browser open https://dashboard.example.com/login
# 第二步:等待页面加载完成
openclaw browser wait "#login-form" --timeout-ms 10000
# 第三步:获取快照,了解页面结构
openclaw browser snapshot
# 输出示例:
# [1] 用户名输入框 <input name="username">
# [2] 密码输入框 <input name="password" type="password">
# [3] 登录按钮 <button type="submit">登录</button>
# 第四步:填写登录信息
openclaw browser type 1 "myusername"
openclaw browser type 2 "mypassword"
openclaw browser click 3
# 第五步:等待跳转到仪表盘
openclaw browser wait --url "**/dashboard" --load networkidle
# 第六步:获取数据或截图
openclaw browser screenshot --output dashboard.png
案例二:批量表单提交
当需要重复填写相似表单时,可以用脚本实现批量操作:
#!/bin/bash
# 批量提交表单脚本
# 数据文件(每行一条记录:姓名,邮箱,电话)
DATA_FILE="contacts.csv"
# 启动浏览器
openclaw browser --browser-profile openclaw start
while IFS=',' read -r name email phone; do
# 打开表单页面
openclaw browser open https://form.example.com/submit
openclaw browser wait "#contact-form"
# 获取快照并填写
openclaw browser snapshot
openclaw browser type 1 "$name"
openclaw browser type 2 "$email"
openclaw browser type 3 "$phone"
# 提交表单
openclaw browser click 4
# 等待提交完成
openclaw browser wait ".success-message" --timeout-ms 5000
echo "已提交: $name"
done < "$DATA_FILE"
echo "批量提交完成!"
案例三:网页内容监控
定期检查网页变化,发现更新时发送通知。核心思路是:获取页面快照 -> 计算内容哈希 -> 对比变化 -> 发送通知。
import subprocess
import hashlib
import time
def monitor_page(url: str, interval: int = 300):
"""监控页面变化"""
subprocess.run("openclaw browser --browser-profile openclaw start", shell=True)
last_hash = None
while True:
subprocess.run(f"openclaw browser open {url}", shell=True)
time.sleep(2)
result = subprocess.run(
"openclaw browser snapshot --json",
shell=True, capture_output=True, text=True
)
current_hash = hashlib.md5(result.stdout.encode()).hexdigest()
if last_hash and current_hash != last_hash:
print(f"页面变化!{time.strftime('%Y-%m-%d %H:%M:%S')}")
subprocess.run("openclaw browser screenshot --output change.png", shell=True)
last_hash = current_hash
time.sleep(interval)
monitor_page("https://news.example.com", interval=300)
💡 进阶技巧: 结合 AI 模型可以实现智能内容变化分析。通过 API易 apiyi.com 调用 Claude API,可以让 AI 判断哪些变化是重要的,值得通知用户。
OpenClaw Browser 应用场景
| 场景 | 实现方式 | 适合用户 | 示例任务 |
|---|---|---|---|
| 自动化测试 | 编写脚本执行 UI 测试 | QA 工程师、开发者 | 回归测试、端到端测试 |
| 数据抓取 | 导航+快照+提取 | 数据分析师 | 价格监控、竞品分析 |
| 表单自动化 | 批量填写重复表单 | 运营人员 | 注册账号、提交申请 |
| 网页监控 | 定期截图对比 | DevOps | 页面可用性、内容变更 |
| 内容归档 | PDF 导出、截图保存 | 研究人员 | 网页存档、证据保全 |
| 社交媒体 | 自动发布和互动 | 营销人员 | 定时发帖、数据采集 |
性能优化与调试技巧
提升执行速度:
- 使用精确的等待条件而非固定延时
- 复用浏览器会话,避免频繁启停
- 生产环境使用
headless: true减少资源消耗
常见问题调试:
- 元素找不到: 使用
snapshot --labels生成带标签的截图 - 操作超时: 增加
--timeout-ms参数值 - 登录失效: 用
cookies --json检查 Cookie 状态
工具选择: 根据任务复杂度选择合适的 AI 模型。简单任务用 GPT-4o-mini 成本最低,复杂分析任务用 Claude Sonnet 4 效果最好。通过 API易 apiyi.com 可以方便地切换和对比不同模型。
总结
OpenClaw Browser 自动化的核心要点:
- CDP 协议控制: 通过 Chrome DevTools Protocol 实现机器速度的浏览器操作
- 智能快照系统: AI Snapshot 和 Role Snapshot 让元素引用变得简单直观
- 三种配置模式: OpenClaw、Chrome 扩展、远程 CDP,满足不同场景需求
- 完整操作覆盖: 点击、输入、拖拽、截图、PDF 导出一应俱全
- 安全隔离设计: 独立浏览器环境保护个人数据安全
OpenClaw Browser 让 AI Agent 真正具备了"操作网页"的能力,从被动的聊天助手升级为主动的自动化执行者。
推荐通过 API易 apiyi.com 获取 Claude/GPT API 来驱动 OpenClaw,平台提供免费测试额度和多模型统一接口,让你的浏览器自动化更加智能高效。
参考资料
-
OpenClaw Browser 官方文档: 浏览器控制能力完整说明
- 链接:
docs.openclaw.ai/tools/browser - 说明: 最权威的 Browser 功能文档和 API 参考
- 链接:
-
OpenClaw CLI Browser 命令: 命令行工具详细用法
- 链接:
docs.openclaw.ai/cli/browser - 说明: 所有 Browser 子命令的参数和示例
- 链接:
-
OpenClaw GitHub 仓库: 源代码和 Issue 讨论
- 链接:
github.com/openclaw/openclaw - 说明: 68K+ Stars 的开源项目,浏览器相关问题可在此反馈
- 链接:
-
Chrome DevTools Protocol 文档: CDP 协议技术规范
- 链接:
chromedevtools.github.io/devtools-protocol - 说明: 深入理解底层协议的参考资料
- 链接:
-
Browserless 托管服务: 云端无头浏览器服务
- 链接:
browserless.io - 说明: 远程 CDP 模式的推荐托管服务商
- 链接:
作者: 技术团队
技术交流: 欢迎在评论区讨论 OpenClaw Browser 使用技巧,更多 AI 模型 API 资料可访问 API易 apiyi.com 技术社区
