每日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 — 打开网页
browser navigate <url>最基础的命令,打开指定 URL 并自动截图。会自动等待 network idle,确保页面渲染完成。
2. act — 执行自然语言操作
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 — 结构化数据提取
browser extract "Extract the product information" \ '{"productName": "string", "price": "number", "inStock": "boolean"}'用 Zod Schema 定义你想提取的数据格式,AI 会自动扫描页面并返回结构化 JSON。支持 string/number/boolean 三种类型。
4. observe — 发现页面元素
browser observe "Find all buttons"browser observe "Find form input fields"在不确定页面结构时,先用 observe 探查有哪些可交互元素。
5. screenshot — 截图
browser screenshot截取当前页面,自动保存到 ./agent/browser_screenshots/ 目录。大于 2000x2000 的图片会自动缩放。
6. close — 关闭浏览器
browser close清理所有资源,关闭 Chrome 进程。记得最后一定要调用,不然 Chrome 进程会一直挂着。
使用场景
结合 OpenClaw 的浏览器工具,这个技能可以用于:
- 自动填表 & 表单提交:自动填充并提交表单,无需手动操作
- 网页数据采集:结构化提取商品信息、新闻标题、价格等
- 自动登录 & 会话保持:利用
.chrome-profile/持久化 Cookie - 多步骤 Web 流程:注册 → 验证 → 填写 → 提交 全自动
- 页面状态监控:定时截图检查网页是否正常
- 调试 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 环境
- 已安装
browserCLI 工具(OpenClaw 插件提供)
基本工作流
# 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" }注意事项
-
描述要具体:自然语言的歧义是最大的坑,比如页面上有多个按钮时,尽量加上视觉位置描述(颜色、相邻元素等)
-
主动等待:页面导航后用
browser act "Wait for the page to fully load"等待,避免操作落在加载中的元素上 -
善用
observe调试:当act失败时,先observe看看页面上到底有哪些元素 -
Chrome 进程管理:多次运行后记得
browser close,否则会积累大量 Chrome 进程 -
Schema 类型匹配:
extract的 schema 只支持 string/number/boolean,如果字段缺失会返回空值,注意在业务代码里处理
总结
browser-automation 技能将 Playwright 的强大能力与 AI 自然语言理解结合在一起,让网页自动化变得异常简单。不需要写选择器、不需要理解页面结构,直接说人话就能操作网页。
适合场景:数据采集、表单自动填写、Web 测试、页面监控、需要登录的多步骤 Web 流程。
不太适合:纯 API 就能完成的任务(绕开浏览器更高效)、高度复杂的动态页面(AI 也有理解偏差的时候)。
Skill 来源:ClawHub @peytoncaster,评分 4.453 ⭐