为什么看起来像 CDP
Chrome DevTools Protocol(CDP)按域组织命令和事件,消息用 JSON 传输。KUI 同样通过 HTTP 发现 target,再经 WebSocket 收发带 id 的命令;DOM、CSS、Page、Input 等名字便于复用部分调试客户端。相似的是连接方式与部分命令形状,不是底层浏览器实现。
按工作流比较
以下对比基于 KUI 当前路由表和 CDP 官方定义。CDP 的具体域随 Chromium 版本演进;KUI 的当前方法也应按所用 SDK 版本核对。
| 工作流 | KUI DevTools | Chrome CDP |
|---|---|---|
| 运行环境 | KUI 原生窗口、HTML/CSS、可选 Lua | Chromium/Blink 页面和浏览器进程 |
| 发现与连接 | 回环 HTTP `/json` + 带 token 的 WebSocket | 远程调试端点 + WebSocket |
| 元素与样式 | DOM、计算样式、匹配规则、盒模型、运行时编辑 | 更广的 DOM/CSS 域与浏览器样式模型 |
| 脚本调试 | Lua 求值、断点、调用栈与变量;需要脚本引擎 | JavaScript/V8 调试 |
| 网络 | 脚本、样式与图片的资源状态列表 | 请求、响应、时序等完整网络域 |
| 性能 | KUI 帧阶段、失效、节点工作、可用资源指标 | 浏览器渲染与运行时的性能、Tracing 等域 |
| 自动化 | 输入、截图、录屏与 MCP 工具;部分 CDP 方法为别名 | 浏览器导航、target、网络拦截等广泛自动化 |
哪些命令能直接借用
Page.captureScreenshot 对应 KUI 截图,Runtime.evaluate 对应 Lua 求值;DOM.getBoxModel、Input.dispatchMouseEvent 等也提供类似入口。参数或返回结构可能只有部分对齐,适配器应逐方法核对。尤其不要把返回 {} 的 bootstrap enable 方法误判为整域功能已实现。
迁移现有 CDP 客户端时
先列出客户端实际发送的方法,再对照 KUI 协议表。保留 DOM/CSS/输入/截图等有对应实现的步骤;把 JavaScript 求值改成 Lua 或原生宿主接口;把浏览器导航、ServiceWorker、完整 Network、Target 会话和设备仿真等步骤按 KUI 应用模型重写。最后在真实应用窗口验证交互与结果。
兼容性的准确说法
KUI 提供 CDP 风格的调试协议和部分同名方法,另有面向 KUI 渲染与 Lua 的专用能力。它不是 CDP 的完整实现。对 Playwright、Puppeteer 等浏览器自动化工具,只有经过目标方法和运行场景验证,才可以说某条工作流可用。
文档有误或遗漏?
反馈此页问题 →