当你的 AI 助手能够「看见」网页、「操作」浏览器时会发生什么?本文将带你深入探索 OpenClaw 的浏览器控制能力,手把手教你构建一个真正能替你干活的数字助手。
一、为什么需要让 AI 控制浏览器?
在正式进入技术教程之前,让我们先思考一个问题:让 AI 控制浏览器,能为我们带来什么?
想象一下这样的场景:
- 早上醒来,你对手机说一句「帮我查一下今天A股有哪些涨停股」,AI 立刻打开浏览器、访问财经网站、抓取数据、分析整理,最后把结果发给你。
- 你正在出差,突然需要一份某家公司的详细资料,只需要发条微信,AI 就会自动打开浏览器、搜索公司信息、浏览官网、提取关键数据,整理成一份完整的报告。
- 你想了解某个产品的用户评价,AI 会自动打开多个电商平台、社交媒体,汇总所有评论,生成一份情感分析报告。
这些场景不再是科幻,而是正在发生的现实。
1.1 浏览器是互联网的入口
我们每天使用浏览器访问各种网站、获取信息、完成操作。浏览器是人类与互联网交互的主要入口,也是数据最密集、操作最频繁的场景。如果 AI 能够控制浏览器,就等于拥有了一双「看到」互联网的眼睛和一双「操作」互联网的手。
1.2 传统 AI 的局限
传统的 AI 对话助手(如 ChatGPT、Claude 等)虽然具备强大的语言理解和生成能力,但它们: - 看不到你正在浏览的网页 - 无法帮你点击按钮、填写表单 - 不能自动抓取网页数据 - 难以完成多步骤的复杂任务
而一旦 AI 获得了浏览器控制能力,这些局限将被彻底打破。
1.3 OpenClaw 的解决方案
OpenClaw 是一个开源的自托管 AI 网关,它能够: - 连接多个聊天平台(微信、Telegram、Discord 等) - 对接各种大模型(Claude、GPT、国产模型等) - 控制本地浏览器(Chrome/Chromium)
这意味着你可以: - 通过微信发消息让 AI 操作浏览器 - AI 完成操作后把结果发回给你 - 完全自动化地完成各种网页任务
二、OpenClaw 浏览器控制核心概念
2.1 架构原理
OpenClaw 的浏览器控制基于 Chrome DevTools Protocol(CDP) 协议。这是一个由 Chrome 浏览器提供的开发者接口,允许外部程序: - 发送指令给浏览器 - 接收浏览器的状态和数据 - 执行各种浏览器操作
OpenClaw 对这个协议进行了封装,提供了一套简洁的 CLI 命令和编程接口,让用户无需了解底层协议细节,就能轻松控制浏览器。
2.2 两种控制模式
OpenClaw 支持两种浏览器控制模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 专用浏览器 | OpenClaw 管理的独立 Chrome 进程 | 自动化任务、长期运行 |
| 用户浏览器 | 控制你正在使用的 Chrome | 需要登录态、需要 Cookies |
本文主要介绍专用浏览器的使用方法。
2.3 核心能力一览
OpenClaw 的浏览器功能非常完善,基本覆盖了你能想到的所有操作:
页面导航 - 打开 URL - 返回/前进 - 刷新页面 - 等待加载
页面交互 - 点击元素 - 输入文字 - 选择下拉框 - 提交表单 - 拖拽操作 - 悬停/聚焦
内容获取 - 截图(整页/区域) - 页面快照(AI 可读的文本结构) - 获取网络请求 - 读取 Console 日志 - 读取 Cookies/LocalStorage
高级功能 - 文件上传下载 - PDF 导出 - 对话框处理 - 浏览器配置调整
三、交互前的完整准备工作
在使用 OpenClaw 控制浏览器之前,需要完成一系列准备工作。这一步至关重要,很多问题都是因为准备工作不充分导致的。
3.1 环境要求
硬件要求 - macOS / Linux / Windows(本文以 macOS 为例) - Chrome 或 Chromium 浏览器(建议使用 Chrome) - 至少 4GB 可用内存
软件要求 - Node.js 22+ 或 24+(推荐) - npm 或 yarn - OpenClaw 已正确安装并运行
3.2 安装 OpenClaw
如果还没安装 OpenClaw,请先执行以下命令:
# 全局安装 OpenClaw
npm install -g openclaw@latest
# 初始化配置
openclaw onboard --install-daemon
# 启动网关
openclaw gateway --port 18789
注意:首次启动需要完成配对,按照屏幕提示操作即可。
3.3 启动浏览器
OpenClaw 需要先启动浏览器才能进行控制。有两种方式:
方式一:CLI 命令启动
# 启动专用浏览器
openclaw browser start
# 查看浏览器状态
openclaw browser status
# 如果浏览器已运行,这会显示已连接的标签页
方式二:通过代码启动
在需要使用浏览器的代码中,OpenClaw 会自动尝试启动浏览器。
3.4 验证环境
完成安装后,建议运行以下命令验证环境是否正常:
# 1. 检查浏览器状态
openclaw browser status
# 2. 打开一个测试网页
openclaw browser open https://www.baidu.com
# 3. 等待页面加载
openclaw browser wait --text "百度一下"
# 4. 截图确认
openclaw browser screenshot /tmp/test.png
# 5. 获取页面快照(AI 可读)
openclaw browser snapshot
如果以上命令都能正常执行,说明环境已经准备就绪。
3.5 浏览器配置文件
OpenClaw 支持多个浏览器配置文件,可以为不同场景创建独立的配置:
# 创建新配置
openclaw browser create-profile work
# 切换配置
openclaw browser --browser-profile work start
# 查看所有配置
openclaw browser profiles
# 删除配置
openclaw browser delete-profile work
应用场景: - 一个配置专门用于工作(已登录公司系统) - 一个配置用于日常搜索(全新浏览器环境) - 一个配置用于自动化任务(无痕模式)
四、核心操作实战教程
掌握了准备工作后,让我们开始学习具体的操作方法。
4.1 页面导航
最基础的操作就是打开网页:
# 在新标签页打开
openclaw browser open https://www.google.com
# 在当前标签页导航
openclaw browser navigate https://www.github.com
# 刷新页面
openclaw browser navigate --reload
# 等待页面加载完成
openclaw browser wait --load-state domcontentloaded
实用技巧:
- 使用 --timeout 参数设置等待超时时间
- --load-state 可选值:load(完全加载)、domcontentloaded(DOM 就绪)、networkidle(网络空闲)
4.2 页面交互
让 AI 操作网页的核心是元素定位。OpenClaw 使用一种类似「AI 引用」的机制:
# 1. 先获取页面快照
openclaw browser snapshot
# 快照会返回页面的结构,每个可交互元素都有一个编号(ref)
# 例如:
# - textfield[ref=5]: 搜索输入框
# - button[ref=7]: 搜索按钮
# 2. 在输入框中输入文字
openclaw browser type 5 "OpenClaw 教程"
# 3. 点击按钮
openclaw browser click 7
# 4. 如果需要按回车
openclaw browser press Enter
更精确的定位方式
除了 AI 引用的编号,还可以使用 CSS 选择器:
# 使用 CSS 选择器点击
openclaw browser click "#submit-button"
# 使用 XPath
openclaw browser click "//button[@class='primary']"
# 填充表单(适合复杂表单)
openclaw browser fill --fields '[
{"ref": "5", "value": "用户名"},
{"ref": "6", "value": "密码"},
{"ref": "8", "value": "男"}
]'
4.3 等待与条件
网页是动态加载的,AI 需要等待元素出现后才能操作:
# 等待文本出现
openclaw browser wait --text "搜索结果"
# 等待元素出现
openclaw browser wait --selector ".result-item"
# 等待 URL 变化
openclaw browser wait --url "*github.com*"
# 等待指定时间(毫秒)
openclaw browser wait --time 3000
4.4 数据抓取
这是最有价值的功能之一——让 AI 自动抓取网页数据:
# 1. 获取页面快照(包含所有文本内容)
openclaw browser snapshot
# 2. 等待内容加载完成
openclaw browser wait --load-state networkidle
# 3. 使用 JavaScript 提取特定数据
openclaw browser evaluate --fn '
() => {
const titles = document.querySelectorAll(".article-title");
return Array.from(titles).map(t => t.textContent);
}
'
# 4. 获取网络请求(适合 API 数据)
openclaw browser requests
# 5. 监听特定请求并获取响应
openclaw browser responsebody --url "*api*"
实战案例:抓取新闻标题
# 打开新闻网站
openclaw browser open https://news.baidu.com
# 等待加载
openclaw browser wait --load-state networkidle
# 获取快照
openclaw browser snapshot
# 假设快照显示新闻标题的 class 是 "news-title"
# 使用 JavaScript 提取
openclaw browser evaluate --fn '
() => {
const items = document.querySelectorAll(".news-title");
return Array.from(items).slice(0, 10).map(i => i.innerText);
}
'
4.5 截图与保存
# 普通截图
openclaw browser screenshot /tmp/page.png
# 整页截图
openclaw browser screenshot /tmp/full.png --full-page
# 截图特定区域(需要先获取快照确定元素 ref)
openclaw browser screenshot --ref 5 --path /tmp/element.png
# 保存为 PDF
openclaw browser pdf /tmp/page.pdf
# 下载文件
openclaw browser waitfordownload --ref 15 --path /tmp/download.pdf
五、实用场景推荐
5.1 场景一:自动化信息收集
需求:每天早上自动获取最新科技新闻
实现方案: 1. 创建一个定时任务(Cron) 2. 让 OpenClaw 打开新闻网站 3. 抓取当天的热门新闻标题 4. 整理成摘要,通过微信/飞书发送给用户
代码示例:
#!/bin/bash
# 每日简报脚本
# 打开科技新闻网站
openclaw browser open "https://www.36kr.com/information/科技/"
# 等待加载
openclaw browser wait --load-state networkidle
sleep 2
# 获取页面标题
openclaw browser snapshot > /tmp/news.txt
# 使用 AI 总结(需要配置大模型)
# ... 后续处理
echo "新闻采集完成"
5.2 场景二:自动化测试
需求:定期检查公司官网是否能正常访问,表单是否可用
实现方案: 1. 打开目标网站 2. 填写测试表单 3. 提交并验证结果 4. 记录测试报告
# 打开测试页面
openclaw browser open "https://example.com/form"
# 填写表单
openclaw browser fill --fields '[
{"ref": "5", "value": "测试用户"},
{"ref": "6", "value": "test@example.com"},
{"ref": "7", "value": "这是一条测试留言"}
]'
# 点击提交按钮(假设 ref 是 10)
openclaw browser click 10
# 等待结果
openclaw browser wait --text "提交成功"
# 截图保存
openclaw browser screenshot /tmp/test_result.png
5.3 场景三:价格监控
需求:监控某个商品的价格变化
实现方案: 1. 打开电商页面 2. 定位到价格元素 3. 记录价格 4. 对比历史价格 5. 发送通知
# 打开商品页面
openclaw browser open "https://item.taobao.com/item.htm?id=xxx"
# 等待加载
openclaw browser wait --load-state networkidle
# 提取价格(假设价格元素的 class 是 .price)
openclaw browser evaluate --fn '
() => document.querySelector(".price").innerText
'
5.4 场景四:社交媒体管理
需求:自动发布内容到社交媒体
实现方案: 1. 使用已登录的浏览器配置 2. 打开社交媒体发布页面 3. 填写内容 4. 点击发布
# 使用已登录的配置
openclaw browser --browser-profile social start
# 打开 Twitter 发推页面
openclaw browser open "https://twitter.com/compose/tweet"
# 等待页面加载
openclaw browser wait --load-state domcontentloaded
# 输入内容(需要先获取快照确定 ref)
openclaw browser type 8 "这是一条来自 AI 的自动推文!"
# 点击发送按钮
openclaw browser click 15
5.5 场景五:数据录入自动化
需求:将 Excel/CSV 数据批量录入到网页系统
实现方案: 1. 读取数据文件 2. 循环处理每条数据 3. 打开录入页面 4. 填写数据并提交 5. 记录结果
这是一个典型的 RPA(机器人流程自动化)场景。
5.6 场景六:网页内容监控
需求:监控某个页面是否有更新(如考试出分、公司公告)
实现方案: 1. 打开目标页面 2. 获取当前内容 3. 对比上次记录 4. 如有变化,发送通知
# 打开目标页面
openclaw browser open "https://example.com/grades"
# 等待加载
openclaw browser wait --load-state networkidle
# 计算页面 hash(用于检测变化)
openclaw browser evaluate --fn '
() => {
const content = document.body.innerText;
let hash = 0;
for (let i = 0; i < content.length; i++) {
const char = content.charCodeAt(i);
hash = ((hash << 5) - hash) + char;
hash = hash & hash;
}
return hash;
}
'
# 对比上次记录的 hash,如果不同则发送通知
六、高级技巧与最佳实践
6.1 元素定位技巧
问题:页面没有稳定的 ID 或 Class 怎么办?
解决方案:
1. 使用 snapshot 获取 AI 可读的引用编号
2. 使用文本内容定位:button:contains("提交")
3. 使用相对位置:某元素「下方」的按钮
4. 让 AI 自动分析页面结构并选择最佳元素
6.2 处理动态内容
问题:页面有大量 JavaScript 动态渲染的内容
解决方案:
# 等待网络空闲(动态内容加载完成)
openclaw browser wait --load-state networkidle
# 或者等待特定元素出现
openclaw browser wait --selector ".dynamic-content:visible"
# 滚动页面触发懒加载
openclaw browser evaluate --fn '() => window.scrollBy(0, 500)'
6.3 处理登录态
问题:需要登录才能操作某些功能
解决方案: 1. 方案一:使用用户浏览器配置(保持登录态)
openclaw browser --browser-profile user start
- 方案二:先手动登录,然后导出 Cookies
# 登录完成后,保存 Cookies
openclaw browser cookies --save /tmp/cookies.json
# 下次使用时导入
openclaw browser cookies --load /tmp/cookies.json
6.4 错误处理
问题:操作失败了怎么办?
最佳实践:
1. 每次操作后都检查返回结果
2. 使用 wait 命令添加适当的等待时间
3. 截图保存失败现场
4. 添加重试机制
# 带重试的示例
for i in 1 2 3; do
openclaw browser click 5 && break
echo "重试 $i..."
sleep 2
done
6.5 性能优化
建议:
- 不需要视觉效果时,使用 headless 模式
- 批量操作时,使用 --no-wait 减少等待
- 定期清理浏览器缓存:openclaw browser reset-profile
- 使用 snapshot --efficient 减少数据传输
七、常见问题与解决
Q1: 浏览器打不开怎么办?
可能原因: 1. Chrome 未安装 2. 端口被占用 3. 权限问题
解决方法:
# 检查 Chrome 是否安装
which google-chrome
# 指定 Chrome 路径
openclaw browser start --executable "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# 查看详细错误日志
openclaw browser start --log-level debug
Q2: 页面加载太慢怎么办?
解决方法:
1. 减少等待时间
2. 使用 --load-state domcontentloaded 代替 networkidle
3. 跳过图片加载
4. 使用代理加速访问
Q3: 点击/输入无效怎么办?
可能原因: 1. 元素不可见 2. 元素被遮挡 3. 页面结构变化
解决方法:
# 先滚动到元素可见
openclaw browser scrollintoview 5
# 或者使用 JavaScript 点击
openclaw browser evaluate --fn '
() => document.querySelector("#button").click()
'
Q4: 中文输入乱码怎么办?
解决方法:
# 使用 Unicode 转义
openclaw browser type 5 "\u4E2D\u6587\u5185\u5BB9"
八、总结与展望
8.1 本文的要点回顾
本文详细介绍了 OpenClaw 连接大模型与 Chrome 浏览器的完整方案:
- 准备工作:环境安装、浏览器启动、配置验证
- 核心操作:页面导航、元素交互、数据抓取、截图保存
- 实战场景:信息收集、自动化测试、价格监控、社交媒体管理
- 高级技巧:元素定位、动态内容处理、登录态管理
- 问题解决:常见错误的排查与修复
8.2 未来展望
随着 AI 技术的快速发展,浏览器自动化的能力将越来越强大:
- 更智能的元素选择:AI 自动分析页面结构,选择最佳交互方式
- 多浏览器协同:同时控制多个浏览器完成复杂任务
- 云端浏览器:在服务器上运行浏览器,24/7 自动化任务
- 视觉理解:结合计算机视觉,AI 能「看懂」页面布局
8.3 行动建议
如果你想现在开始尝试:
- 第一步:安装 OpenClaw,启动浏览器
- 第二步:运行几个基础命令,熟悉操作
- 第三步:选择一个简单场景,动手实践
- 第四步:逐步增加复杂度,构建自己的自动化工作流
AI 正在改变我们与互联网交互的方式,而 OpenClaw 让你能够亲自参与这场变革。不要只是观望,动起手来!
AI 技术探索之旅,未完待续...💕

夜雨聆风