Skip to content

OpenClaw browser-use 技能完全指南:AI 驱动的浏览器自动化实战

2026年4月8日

OpenClaw browser-use 技能完全指南:AI 驱动的浏览器自动化实战

让 AI 像真人一样操作浏览器:打开网页、点击按钮、填写表单、提取数据、截图存档。browser-use 技能把繁琐的网页操作交给 AI,释放你的时间。

browser-use 是什么?

browser-use 是 OpenClaw 的浏览器自动化技能,基于 Playwright 驱动,支持:

功能说明
网页导航打开 URL、前进、后退、刷新
元素操作点击、输入、下拉选择、拖拽
数据提取抓取文本、图片、链接、表格
截图录屏全页截图、元素截图、录屏
表单处理自动填写、提交、验证
多标签管理打开多标签、切换、关闭

核心优势:

  • 拟人化操作:绕过大部分自动化风控
  • 多浏览器支持:无头 Chromium、真实 Chrome、云端浏览器
  • AI 理解页面:自动识别元素,无需手写选择器
  • 可视化调试:支持 headed 模式,实时看到操作过程

安装配置

安装技能

bash
openclaw skill install browser-use

安装浏览器驱动

bash
# 安装 Playwright 浏览器
npx playwright install chromium

# 或安装所有浏览器
npx playwright install

配置权限

~/.openclaw/openclaw.json 中添加:

json
{
  "skills": {
    "browser-use": {
      "enabled": true,
      "permissions": ["browser", "network"],
      "config": {
        "headless": true,
        "timeout": 30000,
        "viewport": {
          "width": 1280,
          "height": 720
        }
      }
    }
  }
}

配置参数说明

参数默认值说明
headlesstrue无头模式,不显示浏览器窗口
timeout30000操作超时时间(毫秒)
viewport.width1280视口宽度
viewport.height720视口高度
slowMo0操作延迟(毫秒),调试用

基本操作

打开网页

用户:打开 https://www.example.com

Agent:[执行 browser_use action=open url=https://www.example.com]

已打开网页:https://www.example.com

获取页面快照

用户:获取页面快照

Agent:[执行 browser_use action=snapshot]

页面结构:
- 标题:Example Domain
- 主要元素:
  - 标题 "Example Domain"
  - 链接 "More information..." [href="https://www.iana.org/domains/example"]
  - 段落 "This domain is for use in illustrative examples..."

点击元素

用户:点击"More information"链接

Agent:[执行 browser_use action=click ref=e5]

已点击链接,当前页面:https://www.iana.org/domains/example

输入文本

用户:在搜索框输入"OpenClaw教程"

Agent:[执行 browser_use action=type selector=input[type="search"] text="OpenClaw教程"]

已输入文本,是否需要提交搜索?

截图

用户:截取整个页面

Agent:[执行 browser_use action=screenshot full_page=true path="screenshot.png"]

截图已保存:screenshot.png

数据提取

提取文本内容

用户:提取页面上所有文章标题

Agent:[执行 browser_use action=evaluate code="Array.from(document.querySelectorAll('h2')).map(el => el.textContent)"]

提取到 10 个标题:
1. OpenClaw 安装教程
2. OpenClaw 配置指南
3. OpenClaw 技能开发
...

提取表格数据

用户:提取页面上的表格数据

Agent:[执行 browser_use action=evaluate code="..."]

提取到表格数据:
| 名称 | 价格 | 库存 |
|------|------|------|
| 商品A | ¥99 | 100 |
| 商品B | ¥199 | 50 |
...

提取图片链接

用户:提取所有商品图片链接

Agent:[执行 browser_use action=evaluate code="Array.from(document.querySelectorAll('img.product')).map(el => el.src)"]

提取到 20 个图片链接:
- https://example.com/img/product1.jpg
- https://example.com/img/product2.jpg
...

表单自动填写

登录表单示例

用户:帮我登录 example.com,用户名 test@example.com,密码 password123

Agent:[执行序列]
1. 打开 https://example.com/login
2. 输入用户名到 input[name="email"]
3. 输入密码到 input[name="password"]
4. 点击登录按钮

登录成功,当前页面:用户中心

复杂表单示例

用户:填写注册表单,姓名张三,邮箱 zhangsan@example.com,选择"企业用户"

Agent:[执行序列]
1. 输入姓名:张三
2. 输入邮箱:zhangsan@example.com
3. 选择下拉选项:企业用户
4. 勾选同意协议
5. 点击提交

注册表单已填写并提交。

高级操作

多标签管理

用户:在后台打开所有搜索结果链接

Agent:[执行序列]
1. 获取所有搜索结果链接
2. 逐个在新标签打开
3. 等待页面加载完成
4. 切换到第一个标签

已打开 10 个标签页,当前在第 1 个标签。

标签操作命令:

操作命令
新建标签action=tabs tab_action=new
列出标签action=tabs tab_action=list
切换标签action=tabs tab_action=select index=2
关闭标签action=tabs tab_action=close

iframe 操作

用户:操作页面中的 iframe

Agent:[执行 browser_use action=snapshot frame_selector="iframe#main"]

iframe 内容已获取,可以继续操作。

文件上传

用户:上传文件 report.pdf

Agent:[执行 browser_use action=file_upload selector="input[type='file']" paths_json='["/path/to/report.pdf"]']

文件已上传:report.pdf

拖拽操作

用户:把元素A拖到元素B位置

Agent:[执行 browser_use action=drag start_ref=e1 end_ref=e2]

拖拽完成。

实战案例一:批量截图

场景

需要对多个网页进行全页截图存档。

操作流程

用户:对以下网页批量截图:
https://site1.com
https://site2.com
https://site3.com

Agent:[执行流程]
1. 打开 site1.com → 截图保存 site1.png
2. 打开 site2.com → 截图保存 site2.png
3. 打开 site3.com → 截图保存 site3.png

截图完成,已保存 3 张图片。

优化配置

json
{
  "config": {
    "full_page": true,
    "wait_for": "networkidle",
    "screenshot_type": "png"
  }
}

实战案例二:价格监控

场景

监控电商平台商品价格变化。

操作流程

用户:监控商品 https://shop.com/product/123 的价格,每天检查一次

Agent:[创建定时任务]
1. 定时器:每天 09:00 执行
2. 打开商品页面
3. 提取价格元素
4. 对比历史价格
5. 价格变化时发送通知

监控任务已创建,下次执行:明天 09:00

数据提取代码

javascript
// 提取价格
const price = document.querySelector('.price-current')?.textContent;

// 提取库存
const stock = document.querySelector('.stock-status')?.textContent;

// 提取评分
const rating = document.querySelector('.rating-score')?.textContent;

return { price, stock, rating };

实战案例三:自动填报表单

场景

每月自动填写政府部门统计报表。

操作流程

用户:填写统计局月报,数据在本月数据.xlsx

Agent:[执行流程]
1. 读取 Excel 文件获取数据
2. 打开统计局网站
3. 登录账号
4. 进入报表页面
5. 逐项填写数据
6. 上传附件
7. 提交报表
8. 截图确认

月报已提交,截图已保存。

表单映射配置

json
{
  "form_mapping": {
    "企业名称": "company_name",
    "营业收入": "revenue",
    "从业人数": "employees",
    "纳税金额": "tax"
  }
}

实战案例四:竞品分析

场景

抓取竞品网站产品信息进行对比分析。

操作流程

用户:分析竞品 A、B、C 的产品价格和规格

Agent:[执行流程]
1. 打开竞品 A 网站 → 提取产品列表
2. 打开竞品 B 网站 → 提取产品列表
3. 打开竞品 C 网站 → 提取产品列表
4. 整理对比表格

对比分析完成:

| 产品 | 竞品A | 竞品B | 竞品C |
|------|-------|-------|-------|
| 基础版 | ¥99 | ¥89 | ¥109 |
| 专业版 | ¥299 | ¥279 | ¥319 |
| 企业版 | ¥999 | ¥899 | ¥1199 |

实战案例五:自动化测试

场景

对网站进行自动化功能测试。

操作流程

用户:测试登录功能是否正常

Agent:[执行测试用例]
1. 打开登录页
2. 输入测试账号
3. 点击登录
4. 验证是否跳转到首页
5. 检查用户名是否显示
6. 输出测试报告

测试结果:通过 ✅
- 登录成功
- 跳转正确
- 用户名显示正常

测试配置

json
{
  "test_cases": [
    {
      "name": "登录测试",
      "steps": [
        {"action": "open", "url": "/login"},
        {"action": "type", "selector": "#email", "text": "test@example.com"},
        {"action": "type", "selector": "#password", "text": "password"},
        {"action": "click", "selector": "button[type=submit]"},
        {"action": "wait_for", "selector": ".user-profile"}
      ],
      "assertions": [
        {"type": "url", "expected": "/dashboard"},
        {"type": "text", "selector": ".username", "expected": "测试用户"}
      ]
    }
  ]
}

反爬虫技巧

降低被检测风险

技巧配置
随机延迟slowMo: Math.random() * 1000 + 500
真实浏览器使用 headed: true
随机 User-Agent配置 userAgent 参数
Cookie 持久化保存登录状态
模拟人类行为鼠标移动、滚动、随机停顿

配置示例

json
{
  "config": {
    "headless": false,
    "slowMo": 500,
    "args": [
      "--disable-blink-features=AutomationControlled",
      "--disable-infobars"
    ],
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
  }
}

调试技巧

Headed 模式调试

json
{
  "config": {
    "headless": false
  }
}

实时看到浏览器操作过程。

查看控制台日志

用户:查看浏览器控制台输出

Agent:[执行 browser_use action=console_messages level="error"]

控制台错误日志:
- Failed to load resource: net::ERR_BLOCKED_BY_CLIENT

查看网络请求

用户:查看所有网络请求

Agent:[执行 browser_use action=network_requests include_static=false]

网络请求列表:
- GET https://api.example.com/data → 200
- POST https://api.example.com/submit → 201

常见问题

问题一:元素找不到

原因: 页面未加载完成

解决:

json
{
  "wait_for": "selector",
  "selector": ".target-element",
  "wait_time": 5
}

问题二:超时

原因: 网络慢或页面复杂

解决:

json
{
  "timeout": 60000
}

问题三:被检测为机器人

原因: 操作过于机械

解决:

  • 使用 headed 模式
  • 增加随机延迟
  • 使用真实浏览器指纹

最佳实践

实践一:等待策略

优先使用 wait_for 而不是固定延迟:

json
{
  "action": "wait_for",
  "selector": ".loaded-element"
}

实践二:错误重试

配置重试机制:

json
{
  "retry": {
    "maxAttempts": 3,
    "backoff": "exponential"
  }
}

实践三:数据备份

截图保存关键步骤:

json
{
  "screenshot_on_error": true,
  "screenshot_dir": "./logs/screenshots"
}

实践四:资源清理

操作完成后关闭浏览器:

用户:任务完成

Agent:[执行 browser_use action=stop]

浏览器已关闭,资源已释放。

总结

功能操作
打开网页action=open url=...
点击元素action=click ref=...
输入文本action=type text=...
获取快照action=snapshot
截图action=screenshot
提取数据action=evaluate code=...
多标签action=tabs tab_action=...

browser-use 核心价值:

  • 把重复的网页操作自动化
  • AI 理解页面,无需手写选择器
  • 拟人化操作,降低被检测风险
  • 支持复杂多步骤工作流

从简单的单页面操作开始,逐步扩展到复杂的多站点自动化流程。关键是理解业务流程,拆解成可执行的原子操作,让 AI 按步骤执行。

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来