Windows + Edge 环境使用反馈:Proxy 稳定性 / API 功能补充 / 路径兼容

Author: liulinxi607Created Jun 10, 2026Updated Jun 21, 2026

环境

  • OS: Windows 11 + bash (MSYS2)
  • Node: v25.9.0
  • 浏览器: Microsoft Edge (端口 9222,远程调试已开启)

使用场景

用 CDP 抓取微信公众号文章内容,最终目标是打印 PDF / 截图存档。过程中反复遇到以下问题。


1. CDP Proxy 连接稳定性

1.1 进程互斥

  • pkill -f cdp-proxy.mjs 在 Windows bash 下无效,旧进程继续占用 3456 端口
  • 新 proxy 检测到端口被占直接退出,不尝试接管或替换
  • 最终只能 taskkill //F //IM node.exe 暴力全杀(会误杀其它 node 进程)

建议: 新 proxy 启动时检测旧进程 PID,主动 kill 后接管端口;或支持 --force 参数。

1.2 断线后无法自愈

  • 浏览器 WebSocket 断开后,proxy 循环重连全部报连接失败
  • 只能手动重启整条链路

建议: 断线后清除端口缓存重新发现,或增加指数退避重试。

1.3 --browser 每次都要传

  • config.env 偏好未正确持久化,每次都需重新指定

2. API 功能缺失

2.1 缺少 printToPDF 端点

CDP Page.printToPDF 是获取完整页面最可靠的方式(全页、文字可选、文件小),当前 proxy 未暴露。

建议: 新增 /pdf?target=ID&file=... 端点。

2.2 Screenshot 不支持全页

/screenshot 无 captureBeyondViewport。大页面只截视口。clip+全页参数时直接超时(1280×4334px 等 90s+)。

建议: 支持 &full=1,自动获取 layout metrics + captureBeyondViewport。

2.3 CDP 命令超时硬编码

sendCDP 超时 30000ms 无法自定义,printToPDF/全页截图等慢操作不够用。

3. 路径兼容

bash /tmp 和 Node.js /tmp 解析到不同目录(C:/Users/alin/AppData/Local/Temp vs C:/tmp),文件互不可见。

建议: 文件路径使用 os.tmpdir() 统一。

4. 总结

以上问题导致实际操作中绕过 proxy 直接裸连 CDP WebSocket 反而更可靠。Proxy 方向很好,希望更稳定。