使用 Chrome DevTools MCP 协议远程控制 Chrome 浏览器,自动执行网页任务(如打开网站、搜索、点击、查看详情、操作网页等)。支持网站导航、元素交互、表单填写、多步骤跳转、信息提取、SSR等。
通过 Chrome DevTools MCP 协议连接浏览器,实现远程网页控制。
项目值操作系统Windows 11 Pro宿主软件QClaw (OpenClaw)浏览器Chrome (老板已登录的浏览器)连接方式Chrome DevTools MCP ( profile=user)
text
┌─────────────────────────────────────────────────────────┐
│ QClaw / OpenClaw (本机 Windows 11) │
│ │
│ browser(action="navigate", profile="user", ...) │
│ ↓ │
│ Chrome DevTools MCP (CDP) │
│ ↓ │
│ ws://127.0.0.1:9222 (Chrome Remote Debugging) │
│ ↓ │
│ Chrome Browser (老板的 Chrome) ← 直接操控已登录状态 │
└─────────────────────────────────────────────────────────┘
text
browser(action="start", profile="user")
text
browser(action="navigate", profile="user", url="https://example.com")
text
browser(action="snapshot", profile="user", refs="aria")
text
browser(action="act", profile="user", ref="ref_id", kind="click") // 点击
browser(action="act", profile="user", ref="ref_id", kind="type", text="内容") // 输入
text
启动浏览器 → 导航网址 → 获取快照 → 分析内容 → 操作元素 → 等待加载 → 循环重复
text
1. browser(action="navigate", url="目标网址")
2. browser(action="snapshot", refs="aria") ← 每次操作前必做
3. 分析快照中的 ref,找到目标元素
4. browser(action="act", kind="click/type/press", ref="xxx", ...)
5. browser(action="act", kind="wait", timeMs=2000) // 等待加载
6. 返回步骤2,循环直到任务完成
Action说明示例start启动浏览器browser(action="start", profile="user")``navigate打开网址browser(action="navigate", profile="user", url="...")``snapshot获取页面快照browser(action="snapshot", profile="user", refs="aria")``screenshot截图browser(action="screenshot", profile="user")``status查看浏览器状态browser(action="status", profile="user")``stop关闭浏览器browser(action="stop", profile="user")
Kind说明参数click点击元素ref="xxx"``type输入文本ref="xxx", text="内容"``press按键key="Enter"/"Escape"/"ArrowDown"/"ArrowUp"``select下拉选择ref="xxx", values=["选项"]``hover悬停ref="xxx"``wait等待加载timeMs=2000``scroll滚动width=0, height=500``close关闭标签页-
操作代码粘贴文本browser(action="act", kind="press", key="Control+v")全选browser(action="act", kind="press", key="Control+a")后退browser(action="act", kind="press", key="Alt+ArrowLeft")Ctrl+点击新标签打开browser(action="act", ref="xxx", kind="click", modifiers=["Control"])
场景方式搜索框输入browser(action="act", ref="搜索框ref", kind="type", text="关键词")点击搜索/提交按钮browser(action="act", ref="按钮ref", kind="click")回车提交browser(action="act", kind="press", key="Enter")ESC返回/关闭弹窗browser(action="act", kind="press", key="Escape")滚动浏览browser(action="act", kind="scroll", height=800)等待加载browser(action="act", kind="wait", timeMs=3000)
text
1. navigate → 打开搜索引擎(百度/Google)
2. snapshot → 找到搜索框 ref
3. type → 输入搜索关键词
4. press Enter → 提交搜索
5. wait 2s → 等待结果加载
6. snapshot → 查看搜索结果
7. click → 点击目标链接
text
1. navigate → 打开目标网站(已登录状态)
2. snapshot → 确认已登录
3. 执行后续操作...
text
1. navigate → 打开列表页
2. snapshot → 找到目标条目
3. click → 点进详情
4. wait → 等待加载
5. snapshot → 查看详情内容
6. 重复深入或返回继续
text
1. navigate → 打开表单页
2. snapshot → 获取所有表单项 ref
3. type → 逐项填写(姓名、邮箱等)
4. select → 选择下拉选项
5. click → 提交按钮
6. wait → 等待响应
7. snapshot → 确认提交结果
C:\Users\<your-username>\.qclaw\openclaw.json
json
"browser": {
"ssrfPolicy": {
"dangerouslyAllowPrivateNetwork": false,
"allowedHostnames": [ ... ]
},
"profiles": {
"user": {
"driver": "existing-session",
"attachOnly": true,
"cdpPort": 9222,
"cdpUrl": "http://127.0.0.1:9222", // 本地调试端口,不要暴露
"color": "#00AA00"
}
}
}
老板的 Chrome 需要开启远程调试:
chrome://inspect/#remote-debugginglocalhost:9222如果需要手动启动带调试端口的 Chrome:
powershell
start chrome.exe --remote-debugging-port=9222
当 Agent 运行在 Linux 或 Mac 系统时,需要远程连接到 Windows 11 老板电脑上的 Chrome 浏览器。
text
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Linux / Mac (Agent) │ │ Windows 11 (老板电脑) │
│ │ │ │
│ QClaw / OpenClaw │ ←──→ │ Chrome + 远程调试端口 │
│ browser(action=..., │ CDP │ chrome.exe --remote- │
│ cdpUrl="ws://WIN_IP:9222")│ │ debugging-port=9222 │
└──────────────────────────────┘ └──────────────────────────────┘
允许 Chrome 接受外部连接: powershell
chrome.exe --remote-debugging-port=9222 --remote-allow-origins=*
防火墙配置(允许 9222 端口入站)
获取 Windows 电脑的局域网 IP(如 192.168.1.100)
json
"browser": {
"profiles": {
"user": {
"driver": "remote",
"cdpUrl": "ws://<your-windows-ip>:9222", // 替换为实际 IP
"attachOnly": false,
"color": "#00AA00"
}
}
}
text
Blocked: resolves to private/internal/special-use IP address
C:\Users\<your-username>\.qclaw\openclaw.jsonbrowser.ssrfPolicy.allowedHostnames*.example.com)gateway(action=restart)json
"allowedHostnames": [
"*.chatgpt.com", "*.openai.com", "*.oaistatic.com",
"*.gemini.google.com", "*.google.com",
"*.twitter.com", "*.x.com",
"*.facebook.com", "*.fbcdn.net",
"*.github.com", "*.githubusercontent.com", "*.githubassets.com",
"*.npmjs.org", "*.pypi.org", "*.pythonhosted.org",
"*.cloudflare.com", "*.workers.dev", "*.vercel.app",
"*.googleapis.com", "*.gstatic.com",
"*.stackoverflow.com", "*.stackexchange.com"
]
profile=user:连接老板的 Chrome,不是默认 profile问题解决方法报错 "Blocked SSRF"添加域名到白名单,重启 OpenClaw点击没反应重新 snapshot,ref 可能已变化页面加载慢增加 wait timeMs 值浏览器超时重启 OpenClaw 网关输入内容丢失使用 fill 替代 type,或先清空再输入
老板的 Chrome 需开启远程调试才能连接:
- 地址栏输入
chrome://inspect/#remote-debugging- 勾选 "Discover network targets"
- 确认显示
localhost:9222
最后更新:2026-03-25