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

如何在Cypress自动化测试中处理登录表单的Cloudflare验证码?

解决Cloudflare验证导致UI测试循环的问题
  • 启用测试环境专属豁免规则
    既然大部分测试已通过API完成,建议给保留的UI测试配置Cloudflare豁免规则:在测试环境中,针对测试机器IP或带有特定测试标识头(如X-Testing: true)的请求,直接跳过Cloudflare验证。这是最高效的方案,无需和反爬机制硬耗。

  • 使用Cloudflare测试专用验证令牌
    Cloudflare Turnstile提供了测试模式支持:

    1. 在Cloudflare控制台开启站点的Turnstile测试模式
    2. 测试代码中直接调用Cloudflare验证接口,获取测试专用令牌
    3. 将令牌填入表单的cf-turnstile-response字段后提交登录,无需模拟点击验证
  • 优化自动化工具的用户特征模拟
    若必须模拟点击验证,要让测试工具(如Selenium、Playwright)尽可能接近真实用户行为:

    • 禁用自动化标识:比如Selenium添加--disable-blink-features=AutomationControlled参数,Playwright用context.add_init_script移除window.navigator.webdriver标记
    • 加入随机操作延迟:点击验证码前随机等待1-3秒,模拟用户操作间隔
    • 模拟真实路径:先点击表单输入框,再移动鼠标到验证码区域,模拟自然的操作轨迹
  • 限制重试并清理会话
    测试循环多因重复触发更严格的验证导致。可在测试代码中设置重试次数上限,每次失败后清理浏览器缓存、Cookie,重新启动会话,避免被Cloudflare标记为可疑请求


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:03:10