一背景与思路转变
- v1 旧思路Playwright 启动 headless Chromium + 自动登录内网 → 需处理凭证 / 验证码 / VPN,复杂度高、风险大。
- v2 新思路用户明确方向:程序跑在用户本机(Discord 所在电脑),用本机 Claude Code 开发,直接调用本机已登录的 Chrome —— 内网系统登录态已在浏览器里,无需重新登录。
- 关键收益:无需凭证存储、无验证码问题、本机直连内网、操作全程可见。
二核心方案:CDP 附加已登录 Chrome
通过 Chrome DevTools Protocol(CDP)把 Playwright 附加到本机已经登录内网的 Chrome 实例上,直接在真实登录会话中操作考勤系统。
- 用
--remote-debugging-port=9222启动本机 Chrome(已登录内网)。 - Playwright
connectOverCDP('http://localhost:9222')连接。 - 在已登录会话中直接打开考勤补单页填写。
三三种复用登录态方式对比
| 方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| A. CDP 附加运行中 Chrome 推荐 | chrome --remote-debugging-port 启动,connectOverCDP 连接 | 复用完整会话、可看到操作、无需关 Chrome | 需先启动调试模式 |
| B. 持久化用户目录 | launchPersistentContext(userDataDir) | 独立于主 Chrome | 需先关 Chrome、目录锁冲突 |
| C. 手动导 Cookie | 导出 cookies 注入 Playwright | 无需调试端口 | 繁琐、易过期 |
四OS 启动命令(三系统)
Windows"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222Linux
google-chrome --remote-debugging-port=9222
五数据流
补考勤单 JSON→
本机 Node.js 脚本→
connectOverCDP→
打开内网补单页→
逐条填写提交→
截图存档→
输出汇总
六与 v1 对比
| 维度 | v1 旧思路 | v2 新思路 |
|---|---|---|
| 运行位置 | VPS / 本地 | 用户本机 |
| 登录方式 | 脚本自动登录 | 复用 Chrome 已登录会话 |
| 内网访问 | VPS 需 VPN | 本机直连 |
| 凭证管理 | 需安全存储 | 无需凭证 |
| 可见性 | headless | 有头可观察 |
| 开发方式 | Hermes 委派 | 用户本机 Claude Code |
七风险与降级
| 风险 | 降级 / 应对 |
|---|---|
| 登录态过期 | 重新登录一次即可 |
| 表单结构变化 | DOM 检测 + 截图报警 |
| 调试端口冲突 | 换端口 |
| 内网需 VPN | 本机先连 VPN |
八结论与建议
建议步骤:
- 用户本机装 Node.js + Playwright。
- Claude Code 开发脚本。
- 启动 Chrome 调试模式。
- 连接填写测试。
附:考勤助手页面 → https://attendance-helper-1hs.pages.dev/