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

Google Enterprise reCAPTCHA v3结合Selenium测试始终返回0.9分问题排查

问题描述

我已将Google Enterprise reCAPTCHA v3集成到HTML和JavaScript联系表单中,为验证其有效性,使用Selenium进行自动化测试以确认验证码能否准确识别机器人。但提交100次表单后,验证码始终返回0.9分(判定为人类操作),这与预期不符,我期望Selenium自动化请求能得到0.0-0.3的评分。

前端代码如下:

function onClick(e) {
    e.preventDefault(); // Prevents the default form submission behavior
    const captchaTokens = document.querySelectorAll(".form__recaptcha");
    for (let captchaToken = 0; captchaToken < captchaTokens.length; captchaToken++) {
        const element = captchaTokens[captchaToken];
        grecaptcha.enterprise.ready(async () => { // Ensures the reCAPTCHA library is fully loaded
          const token = await grecaptcha.enterprise.execute('6Le-Ia0p********NLj***LTVR******bJC1uF', {action: 'Testing__contact_form'}); // Executes reCAPTCHA with a specific action ('Testing__contact_form')
          element.value = token;
        //   MY FETCH CALL RUN HERE
        });
        
    }
  }
onClick(event)

请问该差异的原因是什么?是否有人遇到过类似的Enterprise reCAPTCHA v3与Selenium自动化的问题?恳请提供排查及解决的建议。


原因分析与解决建议

可能的原因

  1. Selenium配置规避了自动化检测
    reCAPTCHA v3会通过浏览器的自动化特征(如window.navigator.webdriver属性、Chrome的自动化标识)识别机器人。如果你的Selenium配置了反检测参数(比如--disable-blink-features=AutomationControlled),会让reCAPTCHA无法识别出自动化环境,从而给出高分。

  2. 测试脚本缺乏真实机器人的行为特征
    reCAPTCHA v3的评分核心是用户交互行为分析(鼠标轨迹、输入间隔、页面停留时长等)。你的测试代码直接调用onClick函数,跳过了真实用户的操作流程(填写表单、鼠标移动到按钮、点击动作),这种“无交互触发”的行为反而不符合典型机器人的操作模式,导致reCAPTCHA没有足够数据判定为机器人。

  3. 本地环境的IP/设备历史行为干扰
    如果测试使用的是日常办公的本地IP,该IP有大量正常人类操作的历史记录,reCAPTCHA会基于IP的信誉给出高分,而非仅看当前的自动化操作。

  4. Enterprise reCAPTCHA站点配置宽松
    可能你在Google reCAPTCHA控制台中,针对站点或Testing__contact_form这个action的风险检测设置过于宽松,或者reCAPTCHA还在学习站点的正常行为模式,暂时未将自动化请求标记为高风险。

排查与解决建议

  • 调整Selenium配置,暴露自动化特征

    • 移除所有反检测参数,确保window.navigator.webdriver返回true;
    • 使用无头模式(--headless=new),无头浏览器的行为特征更容易被reCAPTCHA识别;
    • 不要使用隐身模式或清理缓存,保留浏览器的自动化痕迹。
  • 模拟典型机器人的操作行为

    • 不要直接调用onClick,用Selenium模拟真实机器人的流程:随机输入表单内容(每个字符停顿100-300ms)、随机移动鼠标到按钮、点击按钮;
    • 增加页面加载后的随机停顿(2-5秒),模拟无意义的页面滚动、随机点击其他元素;
    • 缩短操作间隔,模拟机器人快速完成操作的特征。
  • 检查reCAPTCHA控制台配置

    • 登录控制台查看站点的风险分析设置,开启严格的机器人检测;
    • 查看Testing__contact_form action的历史评分数据,确认是否有其他自动化请求被正确识别;
    • 切换到代理IP测试,避免本地IP的信誉干扰。
  • 验证后端token解析的准确性

    • 在后端打印Google reCAPTCHA的完整响应,确认返回的0.9分确实来自Google,而非前端代码的错误处理或固定值。
  • 尝试更专业的自动化工具

    • 改用Playwright,它的默认配置更贴近真实浏览器,但也可配置更多自动化特征触发低分;
    • 使用专门的CAPTCHA测试工具验证配置有效性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:34:50