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

如何用Python、Selenium结合2captcha提交ReCaptcha Token?无提交按钮解决方案

解决无提交按钮的ReCaptcha验证问题

以下是几种常见的处理方式,你可以根据页面实际情况尝试:

1. 触发Invisible ReCaptcha的回调函数

如果是隐形ReCaptcha(元素带有data-size="invisible"属性),本身就没有提交按钮,验证逻辑依赖回调函数完成:

  • 先找到页面中ReCaptcha元素的data-callback属性值(比如onCaptchaValid)
  • 直接调用这个全局回调函数并传入token:
    window.onCaptchaValid("TOKEN_FROM_2CAPTCHA");
    
  • 如果找不到明确的回调,也可以尝试调用ReCaptcha官方的执行方法:
    grecaptcha.execute('你的站点key', {action: 'submit'}).then(function(token) {
      document.getElementById("g-recaptcha-response").innerHTML = token;
      // 触发页面后续的表单提交或验证逻辑
    });
    

2. 触发页面本身的表单提交

很多时候ReCaptcha是绑定在页面的表单上,验证通过后需要提交整个表单,而非ReCaptcha自带按钮:

  • 找到页面的表单元素,直接调用提交方法:
    document.querySelector('form').submit();
    
  • 或者找到表单的提交按钮(通常是type="submit"的按钮/输入框),模拟点击:
    document.querySelector('button[type="submit"], input[type="submit"]').click();
    

3. 手动触发验证事件

有些页面会监听g-recaptcha-response元素的变化来触发验证,设置token后可以手动触发change事件:

const respEl = document.getElementById("g-recaptcha-response");
respEl.innerHTML = "TOKEN_FROM_2CAPTCHA";
// 触发change事件通知页面验证完成
respEl.dispatchEvent(new Event('change'));

4. ReCaptcha v3的特殊处理

v3版本是后台静默验证,不需要前端提交按钮,你只需要在发送页面请求(比如表单提交、API调用)时,把g-recaptcha-response的token作为参数一起传给后端即可。

排查小技巧

  • 用浏览器F12打开开发者工具,查看ReCaptcha元素的属性,确认是v2隐形版还是v3版
  • 在控制台搜索grecaptcha或data-callback,定位页面的验证逻辑
  • 查看表单的提交事件监听,确认验证通过后触发的动作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:50:22