Browser CDP 操作工具
通过 CDP 协议控制 Chrome,复用已有登录态,执行浏览器自动化操作。
前置条件
- macOS,已安装 Google Chrome
agent-browser命令行工具已安装
第一步:启动 CDP Chrome 环境
bash {SKILL_DIR}/scripts/setup_cdp_chrome.sh 9222
成功后所有 agent-browser 命令带 --cdp 9222。
常用操作
打开页面并等待加载
agent-browser --cdp 9222 open "<URL>"
agent-browser --cdp 9222 wait 3000
提取页面文本内容
agent-browser --cdp 9222 eval 'document.body.innerText.substring(0, 8000)'
提取 Auth Token
# 从 localStorage 或 cookie 提取
agent-browser --cdp 9222 eval 'localStorage.getItem("token") || document.cookie'
页面截图 / 交互式快照
# 查找页面元素(用于登录按钮等交互)
agent-browser --cdp 9222 snapshot -i
点击元素
agent-browser --cdp 9222 click "<CSS selector>"
填写表单
agent-browser --cdp 9222 type "<CSS selector>" "<text>"
⛔ 铁律:永不操作用户浏览器进程
绝对禁止:
- 永不
pkill Chrome/killall Chrome/ 杀任何 Chrome 进程 - 永不启动新的 Chrome 实例(
/Applications/Google Chrome ... &) - 永不更换
--user-data-dir(必须用用户已有 profile,保持 cookie/登录态/指纹) - 永不更改
--remote-debugging-port(用用户已监听的端口,若无则报告,不自行开)
正确做法:
- 先检查用户 Chrome 是否已监听调试端口:
curl -s http://127.0.0.1:9222/json/version - 若已有 → 直接
agent-browser --cdp <port>复用 - 若无 → 报告用户:"请启用 Chrome 远程调试:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222",然后停止,等待用户操作 - 任何情况下都不杀用户浏览器、不启新实例、不换 profile
常见问题
| 问题 | 解决方案 |
|---|---|
| CDP 端口未监听 | 告知用户手动启动 Chrome 远程调试,不要自行操作 |
| 页面跳转到登录页 | snapshot -i 找登录按钮并操作 |
| eval 返回 null | 检查 localStorage key 名称,或改用 document.cookie |
| Chrome 进程残留 | ⛔ 永不杀进程 — 询问用户如何处理 |