4.5 KiB
4.5 KiB
🎯 Windsurf 注册自动化 - 当前状态与问题
✅ 已完成
-
CapSolver 集成 - 完成
- API Key:
CAP-028D3BE0F462CE98724F8568BBC87F692646994A91999FB986A2A5E4BE6BF65A - 已保存到
.env文件 - 代码集成完成(
solveWithCapSolver方法) - 价格: $1.20/1000次
- 成功率: 99%+
- API Key:
-
浏览器方案确定 - rebrowser-puppeteer
- 使用:
"puppeteer": "npm:rebrowser-puppeteer@^23.9.0" - 内置反检测,不需要额外配置
- 已改回使用
require('puppeteer')而不是puppeteer-real-browser
- 使用:
⚠️ 当前问题
核心问题:浏览器选择混乱
历史记录:
- ✅ 最初使用 rebrowser-puppeteer - 可以绕过 Cloudflare
- ❌ 切换到 puppeteer-real-browser (turnstile: false) - 需要手动点击
- ❌ 尝试 puppeteer-real-browser (turnstile: true) - 在付款页面出现循环点击问题
- ❌ 尝试 Playwright - Cloudflare 检测失败
- ✅ 应该回到 rebrowser-puppeteer - 原本就可以用
问题根源:
- rebrowser-puppeteer 本身就能绕过 Cloudflare
- 不需要 puppeteer-real-browser 的 turnstile 功能
- puppeteer-real-browser 在付款页面有干扰
🔧 当前测试方案
✅ 方案:rebrowser-puppeteer + CapSolver(已按官方文档修复)
CapSolver API 调用(已验证正确):
- ✅ 使用
AntiTurnstileTaskProxyLess - ✅ 1 秒轮询(官方推荐)
- ✅ 120 秒超时
- ✅ 错误检测和处理
- ✅ Token 获取正确
当前问题(2025-11-17 11:00 - 已修复):
- ✅ API Key 正确配置
- ✅ Sitekey 动态获取改进(增加调试日志)
- ✅ Token 注入方式完全重写
核心问题(已识别):
- ❌ Token 注入方式不正确:之前只是简单设置 input.value
- ❌ 没有使用 window.turnstile API
- ❌ 没有正确触发 Turnstile 回调机制
修复方案(2025-11-17 11:00 已实施):
- ✅ 改进 sitekey 获取逻辑(增加来源追踪和 Widget ID 获取)
- ✅ 使用 5 种方法注入 token:
- 方法 1:
window.turnstile.reset()+window.turnstile.render()重新渲染 - 方法 2: 直接设置 hidden input 值并触发事件
- 方法 3: 调用页面回调函数
- 方法 4: 使用
window.turnstile.ready() - 方法 5: 操作 iframe(如果可访问)
- 方法 1:
- ✅ 改进验证完成检测(检查按钮、token、iframe状态)
- ✅ 增加详细调试日志
修复关键代码:
- Line 403-454: 改进 sitekey 获取,返回 {sitekey, method, widgetId}
- Line 545-684: 完全重写 token 注入逻辑,使用 window.turnstile API
- Line 660-684: 改进验证完成检测
📋 测试计划
测试 1: rebrowser + CapSolver
node src/cli.js register -s windsurf --keep-browser-open
预期结果:
- 步骤 1-2: 正常填写
- 步骤 3: Cloudflare 出现
- 如果 rebrowser 能绕过 → 直接通过
- 如果绕不过 → CapSolver 自动解决
- 步骤 4-6: 正常完成(重点测试付款页面)
关键检查点:
- 步骤 3: Cloudflare 是否自动通过?
- 步骤 6: 付款页面是否有循环点击?
- 步骤 6: 银行卡输入是否成功?
🐛 已知 Bug
Bug 1: puppeteer-real-browser (turnstile: true) 在付款页面循环点击
- 现象: 一直点击 Stripe Link 的"保存信息"checkbox
- 原因: turnstile 功能误判 checkbox 为验证码
- 解决: 不使用 puppeteer-real-browser
Bug 2: Playwright 被 Cloudflare 检测
- 现象: 即使用了 stealth 插件也无法通过
- 原因: Playwright 的特征容易被检测
- 解决: 不使用 Playwright
📝 代码状态
当前代码使用:
- ✅ rebrowser-puppeteer(已修改)
- ✅ CapSolver API 集成(已完成)
- ✅ 自动回退到手动模式(已实现)
需要验证:
- rebrowser 能否自动绕过 Cloudflare?
- 如果不能,CapSolver 能否接管?
- 付款页面是否正常?
🎯 下一步行动
- 立即测试:运行注册流程,观察 Cloudflare 和付款页面
- 记录结果:
- Cloudflare 是否自动通过?
- CapSolver 是否成功?
- 付款页面是否正常?
- 根据结果调整:
- 如果成功 → 完成 ✅
- 如果失败 → 分析原因并调整
💡 重要提醒
不要再切换浏览器方案!
rebrowser-puppeteer 是最佳选择:
- ✅ 内置反检测
- ✅ 不干扰付款页面
- ✅ 配合 CapSolver 完美
保持这个方案,专注优化!