可行性调研 · V2

本机 Chrome 自动填考勤单 — 可行性调研 v2

复用已登录 Chrome 会话,无需自动登录

背景与思路转变

  • v1 旧思路Playwright 启动 headless Chromium + 自动登录内网 → 需处理凭证 / 验证码 / VPN,复杂度高、风险大。
  • v2 新思路用户明确方向:程序跑在用户本机(Discord 所在电脑),用本机 Claude Code 开发,直接调用本机已登录的 Chrome —— 内网系统登录态已在浏览器里,无需重新登录。
  • 关键收益:无需凭证存储、无验证码问题、本机直连内网、操作全程可见。

核心方案:CDP 附加已登录 Chrome

通过 Chrome DevTools Protocol(CDP)把 Playwright 附加到本机已经登录内网的 Chrome 实例上,直接在真实登录会话中操作考勤系统。

  1. --remote-debugging-port=9222 启动本机 Chrome(已登录内网)。
  2. Playwright connectOverCDP('http://localhost:9222') 连接。
  3. 在已登录会话中直接打开考勤补单页填写。
本机 Chrome 自动填考勤单 — v2 数据流用户启动本机 Chrome(带 --remote-debugging-port=9222并已登录内网系统)运行本机 Node.js 脚本(Claude Code 开发)connectOverCDP 连接http://localhost:9222连接成功?复用已登录会话打开内网考勤补单页提示启动 Chrome 调试模式;\nstopendif:读取补考勤单 JSON\n(考勤助手计算输出)取一条补考勤记录(日期/类型/时段/来源)定位表单字段填入数据提交提交成功?截图存档记录失败原因截图报警还有记录?输出汇总(成功/失败清单)

三种复用登录态方式对比

方式原理优点缺点
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=9222
macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222
Linux
google-chrome --remote-debugging-port=9222

数据流

补考勤单 JSON 本机 Node.js 脚本 connectOverCDP 打开内网补单页 逐条填写提交 截图存档 输出汇总

与 v1 对比

维度v1 旧思路v2 新思路
运行位置VPS / 本地用户本机
登录方式脚本自动登录复用 Chrome 已登录会话
内网访问VPS 需 VPN本机直连
凭证管理需安全存储无需凭证
可见性headless有头可观察
开发方式Hermes 委派用户本机 Claude Code

风险与降级

风险降级 / 应对
登录态过期重新登录一次即可
表单结构变化DOM 检测 + 截图报警
调试端口冲突换端口
内网需 VPN本机先连 VPN

结论与建议

结论:可行,且比 v1 大幅简化 ✓

建议步骤:

  1. 用户本机装 Node.js + Playwright。
  2. Claude Code 开发脚本。
  3. 启动 Chrome 调试模式。
  4. 连接填写测试。

附:考勤助手页面 → https://attendance-helper-1hs.pages.dev/