You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js/Puppeteer无提交按钮场景下通过callback提交hCaptcha token问询

无提交按钮站点hCaptcha token提交方案(Puppeteer/Node.js环境)

你已经完成的token填充逻辑是正确的,无需调整,接下来可以通过以下两种方式完成验证提交:

方法1:调用已找到的hCaptcha回调函数

如果你已经通过调试拿到了站点绑定的hCaptcha验证回调(包括你提到的包含execute部分的函数),直接在Puppeteer的页面上下文执行该回调即可,示例代码如下:

// response为你从2captcha获取到的验证解
await page.evaluate((captchaToken) => {
  // 替换为你实际调试得到的回调函数,以下为常见示例
  // 1. 如果是hCaptcha官方暴露的执行方法
  window.hcaptcha.execute(captchaToken);
  // 2. 如果是站点自定义的验证回调函数
  // window.customHcaptchaCallback(captchaToken);
}, response);

回调执行后站点会自动完成验证逻辑,进入后续流程。

方法2:触发事件模拟用户完成验证行为

如果暂时找不到明确的回调函数,可以通过触发对应DOM元素的常用事件,让站点检测到验证已完成,示例代码如下:

await page.evaluate(() => {
  const hcaptchaTextarea = document.querySelector('textarea[name="h-captcha-response"]');
  // 依次触发输入、变更、失焦事件,触发站点的表单校验逻辑
  hcaptchaTextarea.dispatchEvent(new Event('input', { bubbles: true }));
  hcaptchaTextarea.dispatchEvent(new Event('change', { bubbles: true }));
  hcaptchaTextarea.dispatchEvent(new Event('blur', { bubbles: true }));

  // 针对你测试的鞋类发售站点,额外触发hCaptcha容器的验证完成事件
  const hcaptchaWrapper = document.querySelector('.h-captcha');
  hcaptchaWrapper.dispatchEvent(new Event('verified', { bubbles: true }));

  // 可选:如果站点是表单提交逻辑,直接触发表单提交事件
  // document.querySelector('form').dispatchEvent(new Event('submit', { bubbles: true }));
});

测试场景补充说明

你提到的测试站点为单页应用,验证完成后表单会自动解锁提交权限,你可以在执行上述逻辑后等待1-2秒,再检测表单是否可提交,或者直接调用站点挂载在window对象下的报名提交方法。

内容的提问来源于stack exchange,提问作者S..

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:06:05