通过已登录的Edge或Chrome浏览器,利用Chrome DevTools Protocol执行JS渲染页面的导航、点击、截图及数据提取等自动化操作。
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install browser-automation-cdp或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install browser-automation-cdp⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/browser-automation-cdp/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
> 通过用户已登录的浏览器(Edge/Chrome)执行自动化任务。 > 核心技术:CDP(Chrome DevTools Protocol),通过 WebSocket 与浏览器通信。
---
优先用 web_fetch。以下情况才需要 CDP 自动化:
| 场景 | 是否需要 CDP | |------|------------| | 静态 HTML 页面 | ❌ web_fetch 即可 | | JS 渲染的页面(如 B站) | ✅ 需要 | | 需要登录态的网站(已登录在你的浏览器里) | ✅ 需要 | | 需要交互(点击、填表、滚动) | ✅ 需要 | | 网站有反爬/风控 | ⚠️ 可能失败 |
---
Agent(我)
↓ require('./cdp-automation.js')
cdp-automation.js(连接管理器 + 浏览器抽象类)
↓ WebSocket (HTTP → CDP)
用户 Windows 浏览器(Edge:9222 / Chrome:9223)
↓ 执行 JS / 读 DOM / 点击
目标网站(bilibili / 小红书 / Minimax 等)
---
Edge(端口 9222):
# 方式 A:用你日常的 Edge(推荐,已登录)
taskkill /F /IM msedge.exe /T
Start-Sleep 3
Start-Process "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222
# 方式 B:用独立 profile(不影响日常浏览)
Start-Process "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-port=9222 --user-data-dir="C:\OpenClawBrowser\Edge"
Chrome(端口 9223):
Start-Process "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9223
const { edge, chrome } = require('./browser-automation/cdp-automation.js');
// 基础用法
await edge.goto('https://目标网站.com');
const data = await edge.eval(`document.title`);
// 点击 + 等待 + 提取
await edge.click('[class*="radio-filter__item"]'); // CSS 选择器
await edge.wait(5000); // 等待 JS 渲染
const result = await edge.eval(`提取数据的 JS `);
// 截图
const png = await edge.screenshot(); // 返回 base64
---
browser.goto(url)导航到指定 URL,等待页面加载完成(Page.loadEventFired + 额外 2s 等待 JS 渲染)。
await edge.goto('https://space.bilibili.com/151190274/video');
browser.eval(script)在页面上下文执行 JavaScript,返回结果。
// 读取 DOM
const r = await edge.eval(`document.title`);
console.log(r.result.value);
// 提取结构化数据
const r = await edge.eval(`
JSON.stringify(
Array.from(document.querySelectorAll('.upload-video-card')).slice(0,5).map(c => ({
title: c.querySelector('.bili-video-card__title')?.innerText,
play: c.querySelector('.bili-cover-card__stat span')?.innerText
}))
)
`);
const videos = JSON.parse(r.result.value);
browser.click(selector)点击匹配选择器的第一个元素。通过计算元素中心坐标后用 document.elementFromPoint 模拟点击,支持任何可点击元素。
await edge.click('[class*="radio-filter__item"]'); // 点击"最多播放"tab
browser.screenshot()截图当前页面,返回 PNG base64 字符串。可选保存到文件:
const png = await edge.screenshot();
require('fs').writeFileSync('/tmp/screenshot.png', Buffer.from(png, 'base64'));
browser.wait(ms)显式等待,用于等待 JS 渲染或网络请求。
await edge.click('.next-page');
await edge.wait(3000); // 等待翻页后内容加载
browser.tabs()获取所有标签页列表(不含临时 JS 上下文)。
const tabs = await edge.tabs();
const bTab = tabs.find(t => t.url.includes('bilibili.com'));
---
选择器(2025年有效):
.upload-video-card.bili-video-card__title.bili-cover-card__stat span(第一个 span)[class*="radio-filter__item"],文字为"最多播放"重要:
web_fetch 拿到的是空壳parseInt(play.replace(/\D/g,''))注意:
eval 探索DOM结构处理方式:
// 先探索页面结构
const r = await xhs.eval(`
JSON.stringify({
title: document.title,
samples: Array.from(document.querySelectorAll('[class*="note"]')).slice(0,3).map(x => ({
text: x.innerText?.substring(0,100),
class: x.className?.substring(0,60)
}))
})
`);
console.log(JSON.parse(r.result.value));
查询目标: Token Plan 配额(每 5 小时重置)
关键路径(已验证):
type=page 的标签页)/user-center/basic-information(可正常访问)div(注意:不是 标签):```javascript // 找到并点击"Token Plan"菜单项 const r = await edge.eval(` (function() { var allDivs = document.querySelectorAll('div'); for (var d of allDivs) { if (d.innerText && d.innerText.trim() === 'Token Plan' && d.className.includes('cursor-pointer')) { d.click(); return 'clicked'; } } return 'not found'; })() `); ```
实际路径规律(Next.js SPA):
/user-center/payment/token-planPage.navigate 到 /user-center/token-plan 会 404/user-center/basic-information,再 JS 点击触发路由跳转配额数据所在位置(2026-03 验证):
Token Plan / Starter年度套餐可用额度:XXX次模型调用 / 5小时XXX/600示例提取脚本:
// 已在 basic-information 页面,点击 Token Plan 后执行:
const r = await edge.eval(`(function(){
var t = document.body.innerText;
// 提取套餐信息
var plan = t.match(/(Starter|Pro|Enterprise)[^\\n]*/)?.[0];
var quota = t.match(/可用额度[::][^\\n]*/)?.[0];
var used = t.match(/(\\d+)\\/600/)?.[0];
return JSON.stringify({plan, quota, used});
})()`);
---
同一时间每个端口(9222/9223)只能有一个 WebSocket 连接。模块内部通过 ConnectionManager 管理,如果任务中途失败导致连接残留,需要重启浏览器 remote debugging。
B站等 JS 密集型页面有时 5s 不够,可以手动加到 8-10s:
await edge.wait(8000);
如果 Edge 调试端口被联想预装软件(msedgewebview2.exe)的实例占用:
taskkill /F /PID document.cookie 拿不到 HttpOnly cookie。如果需要完整 cookie,考虑从浏览器文件直接读取 SQLite(需解决锁文件问题)。
有些页面(如 Minimax)使用 Next.js SPA 路由:
Page.navigate 到 /user-center/token-plan 返回 404/user-center/basic-information),再用 JS 触发 div 点击来执行内部路由跳转 而非 ,不能用 CDP Input.dispatchMouseEvent,必须用 JS element.click()
---
模块文件位置
~/.openclaw/browser-automation/
├── cdp-automation.js ← 核心模块(不用动)
└── SKILL.md ← 本文件
调用时:
const { edge, chrome } = require('~/.openclaw/browser-automation/cdp-automation.js');
---
最后更新:2026-03-24 踩坑:B站选择器 / Edge 端口占用 / CDP 连接复用 / Minimax SPA 导航 / div 菜单点击
安装 Browser Automation (CDP) 后,可以对 AI 说这些话来触发它
Help me get started with Browser Automation (CDP)
Explains what Browser Automation (CDP) does, walks through the setup, and runs a quick demo based on your current project
Use Browser Automation (CDP) to through the logged-in Edge or Chrome browser, use the Chrome DevToo...
Invokes Browser Automation (CDP) with the right parameters and returns the result directly in the conversation
What can I do with Browser Automation (CDP) in my general tools workflow?
Lists the top use cases for Browser Automation (CDP), with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/browser-automation-cdp/ 目录(个人级,所有项目可用),或 .claude/skills/browser-automation-cdp/(项目级)。重启 AI 客户端后,用 /browser-automation-cdp 主动调用,或让 AI 根据上下文自动发现并使用。
Browser Automation (CDP) 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Browser Automation (CDP) 可免费安装使用。请查阅仓库了解许可证信息。
通过已登录的Edge或Chrome浏览器,利用Chrome DevTools Protocol执行JS渲染页面的导航、点击、截图及数据提取等自动化操作。
Browser Automation (CDP) 属于「General Tools」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my general tools tasks using Browser Automation (CDP)
Identifies repetitive steps in your workflow and sets up Browser Automation (CDP) to handle them automatically