CDP 实时页面编辑
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_bda4ca23/cdp。
技能介绍
要解决什么问题
在改前端样式或做页面实验时,常见路径是改仓库、重编译、刷新——成本高,且未必能立刻在真实用户环境里验证。若你已经在用 headed Chrome 与 xbrowser 一类工具,更希望 Agent 能直接对当前 Tab 动手,而不是只给出一段要你粘贴的代码。
本技能围绕 Chrome DevTools Protocol (CDP):通过 WebSocket 连接已开启远程调试的 Chrome,在运行时执行 Runtime.evaluate 注入 JS/CSS,不修改源文件,变更在页面上立即可见。
技能如何工作
前置:Chrome 需以 --remote-debugging-port(如 9222)启动,并配置 --remote-allow-origins=*(Chrome ≥ 90);Node.js 侧通常依赖 ws 模块,也可用 curl 做轻量注入。
典型三步:
- 查找目标页面——从 CDP 的页面列表里定位要编辑的 Tab(URL / id)。
- 注入代码——经 WebSocket 发送 eval,改 DOM、插样式、改
localStorage等;复杂会话可用--keep-open复用连接。 - 验证——肉眼查看或经 CDP
Page.captureScreenshot截图落盘。
文档中还整理了常见操作(标题、颜色、字体、布局、隐藏元素、液态渐变示例等)、一键撤销注入修改、DOM 快照,以及多 Tab 并发(各 Agent 连不同 tab id)、控制台与网络监听等进阶用法;connect_cdp.js 一类脚本内置超时与 CDP 错误回传,便于排查端口、WebSocket 拒绝、eval 语法错误等问题。
适用边界与注意点
- 所有效果都是运行时临时态,刷新或关 Tab 后除非页面自身持久化,否则不会写回工程源码。
- 依赖本机 Chrome CDP 可达;页面 JS 卡死可能导致 WebSocket 异常断开,需刷新重连。
- 选择器或语法错误会以 CDP Error 形式返回,需先用
document.querySelector等确认目标元素存在。 - 多 Tab 场景需明确 tab id,避免连错页面;并发编辑时用户需自行切换到对应 Tab 查看效果。
使用场景
- 已在 headed Chrome 打开需登录的 staging 页,想改主背景色和标题文案验证视觉稿,又不想动仓库或重新构建。
- 用 xbrowser 让 Agent 连 CDP,对当前 Tab 执行 eval 隐藏侧边栏后截图,供设计评审一张无干扰的页面图。
- 同一 Chrome 实例开两个 Tab,分别连不同 tab id,在第二个 Tab 改标题而第一个保持不变,对比多页面改动效果。
- 页面主题依赖 localStorage,需在真实站点 Tab 里设置 `theme=dark` 并立刻看样式是否生效,再一键撤销注入恢复初态。
适合人员
- 维护内网后台的前端,经常在带 Cookie 的真实页面上试 CSS 选择器,本地 dev 无法复现登录态布局。
- 通过 xbrowser + headed Chrome 跑 Agent 的自动化测试者,需要把「改 DOM / 截图验证」写成可重复的 CDP 工作流。
- 做运营或增长落地页的同学,要在已上线的活动页上快速试 banner 文案和配色,确认后再回工程里正式改代码。
- 负责多环境联调的全栈,需要在 9222 端口连本地 Chrome,用 curl 或 Node 脚本轻量注入而不装整套 Puppeteer。