1602 words
8 minutes
每日Skill学习 - browser-automation

每日Skill学习 - browser-automation#

这是一个让 AI 能够”看见并操作”网页的技能包喵~ 非常适合需要自动操作 Web 页面的场景!

Skill 是什么#

browser-automation 是 OpenClaw 的浏览器自动化技能,它在底层使用了三个关键组件:

  • Stagehand:一个基于 Playwright 的 AI 驱动浏览器控制库
  • Chrome CDP:通过 Chrome DevTools Protocol 连接本地 Chrome
  • Claude Haiku 4.5:AI 模型理解自然语言指令并执行对应的浏览器操作

说得直白一点:你可以用自然语言”告诉”AI 去操作网页,而不需要写任何 Playwright 代码或 CSS 选择器。


核心功能#

这个技能提供了完整的 CLI 工具集,核心命令有 6 个:

1. navigate — 打开网页#

Terminal window
browser navigate <url>

最基础的命令,打开指定 URL 并自动截图。会自动等待 network idle,确保页面渲染完成。

2. act — 执行自然语言操作#

Terminal window
browser act "Click the login button"
browser act "Fill in email field with test@example.com"
browser act "Select 'California' from the state dropdown"

这个是最核心的能力!Stagehand 使用 Claude Haiku 4.5 理解你的自然语言描述,然后找到并操作对应的页面元素。支持:点击、输入、选择、滚动、悬停、等待、双击等。

⚠️ 关键提示:描述要具体!

# 好例子
browser act "Click the blue Submit button in the footer"
# 坏例子(可能点错)
browser act "Click submit"

3. extract — 结构化数据提取#

Terminal window
browser extract "Extract the product information" \
'{"productName": "string", "price": "number", "inStock": "boolean"}'

用 Zod Schema 定义你想提取的数据格式,AI 会自动扫描页面并返回结构化 JSON。支持 string/number/boolean 三种类型。

4. observe — 发现页面元素#

Terminal window
browser observe "Find all buttons"
browser observe "Find form input fields"

在不确定页面结构时,先用 observe 探查有哪些可交互元素。

5. screenshot — 截图#

Terminal window
browser screenshot

截取当前页面,自动保存到 ./agent/browser_screenshots/ 目录。大于 2000x2000 的图片会自动缩放。

6. close — 关闭浏览器#

Terminal window
browser close

清理所有资源,关闭 Chrome 进程。记得最后一定要调用,不然 Chrome 进程会一直挂着。


使用场景#

结合 OpenClaw 的浏览器工具,这个技能可以用于:

  1. 自动填表 & 表单提交:自动填充并提交表单,无需手动操作
  2. 网页数据采集:结构化提取商品信息、新闻标题、价格等
  3. 自动登录 & 会话保持:利用 .chrome-profile/ 持久化 Cookie
  4. 多步骤 Web 流程:注册 → 验证 → 填写 → 提交 全自动
  5. 页面状态监控:定时截图检查网页是否正常
  6. 调试 Web 问题:用 screenshot + observe 诊断问题

亮点和值得关注的地方#

✨ 自然语言操控,无需写代码#

传统 Playwright 需要写 page.click('#submit-btn') 这样的选择器代码,而 browser-automation 直接用自然语言描述你想做什么。AI 会自动理解并找到正确的元素。

🧠 AI 驱动的元素发现#

Stagehand 不只是简单的选择器匹配,它用 AI 视觉模型理解页面结构。即使按钮没有稳定的 ID 或 class,AI 也能根据语义找到它。

🗂️ Tab 标签页管理#

技能内置了优秀的 Tab 管理最佳实践:

  • label 给重要标签命名(如 label="meet"
  • 复用已有标签而非重复打开
  • 操作前先 snapshot 确认当前 Tab 状态

🔄 Stale Ref 自动恢复#

当元素引用失效(页面导航或动态渲染导致),技能提供了标准恢复流程:snapshot → 找当前元素 → retry。避免在复杂流程中因为一个小错误就全盘崩溃。

👤 用户浏览器集成#

profile="user" 选项可以附加到用户正在运行的 Chromium 浏览器,直接使用已有的登录状态和 Cookie,不需要重新认证。这个在自动操作需要登录的页面时非常有用。

🔧 完整错误处理#

每个命令都返回 JSON 格式的结果:

{
"success": true,
"message": "Successfully navigated to https://example.com",
"screenshot": "/path/to/screenshot.png"
}

失败时也有清晰的错误提示,比如元素找不到、schema 验证失败、CDP 连接断开等。


快速上手指南#

前置要求#

  • 安装 Chrome/Chromium(本地)
  • Node.js 环境
  • 已安装 browser CLI 工具(OpenClaw 插件提供)

基本工作流#

Terminal window
# 1. 打开目标网页
browser navigate https://example.com
# 2. 截图确认页面加载成功
browser screenshot
# 3. 用自然语言操作页面
browser act "Click the 'Get Started' button"
# 4. 提取结构化数据
browser extract "Extract all product names and prices" \
'{"product": "string", "price": "number"}'
# 5. 完成后清理
browser close

在 OpenClaw 中使用(多步流程示例)#

// Step 1: 打开登录页
{ "action": "navigate", "url": "https://github.com/login" }
// Step 2: 填用户名
{ "action": "act", "targetId": "main", "instruction": "Fill in the username field with myuser" }
// Step 3: 填密码
{ "action": "act", "targetId": "main", "instruction": "Fill in the password field with secret123" }
// Step 4: 点击登录
{ "action": "act", "targetId": "main", "instruction": "Click the Sign in button" }
// Step 5: 等待导航后提取数据
{ "action": "extract", "targetId": "main", "instruction": "Extract the username and avatar URL", "schema": {"username": "string", "avatarUrl": "string"} }

Tab 管理示例#

// 先检查现有标签
{ "action": "tabs" }
// 没有则打开新标签
{ "action": "open", "url": "https://meet.google.com/abc-defg-hij", "label": "meet" }
// 后续操作都指定 targetId 为标签名
{ "action": "snapshot", "targetId": "meet", "refs": "aria" }

注意事项#

  1. 描述要具体:自然语言的歧义是最大的坑,比如页面上有多个按钮时,尽量加上视觉位置描述(颜色、相邻元素等)

  2. 主动等待:页面导航后用 browser act "Wait for the page to fully load" 等待,避免操作落在加载中的元素上

  3. 善用 observe 调试:当 act 失败时,先 observe 看看页面上到底有哪些元素

  4. Chrome 进程管理:多次运行后记得 browser close,否则会积累大量 Chrome 进程

  5. Schema 类型匹配extract 的 schema 只支持 string/number/boolean,如果字段缺失会返回空值,注意在业务代码里处理


总结#

browser-automation 技能将 Playwright 的强大能力与 AI 自然语言理解结合在一起,让网页自动化变得异常简单。不需要写选择器、不需要理解页面结构,直接说人话就能操作网页。

适合场景:数据采集、表单自动填写、Web 测试、页面监控、需要登录的多步骤 Web 流程。

不太适合:纯 API 就能完成的任务(绕开浏览器更高效)、高度复杂的动态页面(AI 也有理解偏差的时候)。


Skill 来源:ClawHub @peytoncaster,评分 4.453 ⭐

每日Skill学习 - browser-automation
https://maomaoz.org/posts/daily-skill-2026-05-18/
Author
讨厌猫猫雨
Published at
2026-05-18
License
CC BY-NC-SA 4.0