浏览器控制
OpenClaw 支持两种浏览器模式:
- 托管浏览器:OpenClaw 启动并控制独立 Chromium,适合无头自动化任务
- Chrome 扩展接管:接管你现有的 Chrome,直接使用已登录的账号状态
1. 基础配置
json
{"browser": {"enabled": true,"defaultProfile": "openclaw","profiles": {"openclaw": {"cdpPort": 18800,"color": "#FF4500"}}}}
改完后执行 openclaw gateway restart。
2. CLI 常用命令
bash
# 查看状态openclaw browser --browser-profile openclaw status# 启动浏览器openclaw browser --browser-profile openclaw start# 打开网页openclaw browser --browser-profile openclaw open https://example.com# 截图(保存到当前目录)openclaw browser --browser-profile openclaw screenshot# 获取页面结构化快照(适合让 Agent 读取页面内容)openclaw browser --browser-profile openclaw snapshot# 停止浏览器openclaw browser --browser-profile openclaw stop
3. Linux / VPS 无头环境配置
在没有显示器的服务器上运行浏览器,需要安装虚拟显示器:
bash
# Ubuntu / Debiansudo apt-get install -y xvfb chromium-browser# 启动虚拟显示Xvfb :99 -screen 0 1280x1024x24 &export DISPLAY=:99
或在 OpenClaw 配置里直接指定 headless 模式:
json
{"browser": {"enabled": true,"defaultProfile": "openclaw","profiles": {"openclaw": {"cdpPort": 18800,"headless": true}}}}
4. Chrome Extension 使用流程
适用于需要使用你自己账号登录态的场景(如微博、公众号后台):
- Chrome 应用商店搜索安装 OpenClaw Browser Relay
- 打开目标网页,点击扩展图标 → Badge 显示 ON
- 在聊天里直接给任务,Agent 会操作你当前的页面
扩展模式无需重新登录,直接复用你已有的 Cookie 和 Session。
5. 多 Profile 配置
不同任务用不同浏览器 Profile,彼此登录态和 Cookie 完全隔离:
json
{"browser": {"enabled": true,"defaultProfile": "personal","profiles": {"personal": {"cdpPort": 18800,"color": "#4A90D9"},"work": {"cdpPort": 18801,"color": "#FF4500"},"scraper": {"cdpPort": 18802,"headless": true,"color": "#27AE60"}}}}
切换 Profile 时在任务描述里指定:
bash
openclaw browser --browser-profile work startopenclaw browser --browser-profile scraper start
6. 结合 Cron 实现浏览器自动化
每天定时截图存档
bash
openclaw cron add \--schedule "0 10 * * *" \--message "用 scraper profile 打开 https://www.yoursite.com,截图并保存到 ~/screenshots/$(date +%Y%m%d).png" \--channel telegram --target <你的ChatID>
每周一竞品监控
bash
openclaw cron add \--schedule "0 9 * * 1" \--message "用 scraper profile 依次打开竞品A和竞品B首页,截图对比,总结本周有哪些新功能或价格变化,发飞书" \--channel feishu --target <飞书用户ID>
7. 实际使用场景(带完整提示词)
竞品价格监控
bash
用 scraper profile 打开 https://competitor.com/pricing,截图并提取所有套餐名称和价格,和上次记录对比(MEMORY.md 里有上次数据),如有变化发飞书通知并更新 MEMORY.md
表单自动填写
bash
用 work profile 打开 https://forms.example.com/register,按照 USER.md 里的个人信息填写表单(姓名、邮箱、公司),提交后截图确认,告诉我提交是否成功
批量内容采集
bash
用 scraper profile 打开 https://news.example.com,提取今天所有文章的标题、发布时间和链接,整理成 Markdown 表格,保存到 ~/data/news-$(date +%Y%m%d).md
自动化登录后操作
bash
用 personal profile(已登录微博),打开我的微博草稿箱,把标题包含"待发"的第一条草稿发布出去,截图确认
8. 常见问题
| 现象 | 原因 | 解决方法 |
|---|---|---|
| 浏览器启动失败 | Chromium 未安装 | apt install chromium-browser 或 brew install chromium |
| 端口冲突 | 18800 已被占用 | 改 cdpPort 为其他未占用端口(如 19800) |
| VPS 上无法启动 | 没有虚拟显示 | 安装 xvfb 或开启 "headless": true |
| 截图全白 | 页面未完全加载 | 提示词里加"等待页面完全加载后再截图" |
| 反爬被拦截 | 检测到无头浏览器特征 | 改用 Chrome Extension 模式,使用真实浏览器 |
| 多个 Profile 互相干扰 | cdpPort 相同 | 每个 Profile 分配不同端口 |
| Cron 里浏览器任务不执行 | Gateway 未启动或浏览器 Profile 未启动 | 先手动 openclaw browser --browser-profile scraper start 测试 |