首页
/ OpenBullet2配置中解决验证码错误的正确方法

OpenBullet2配置中解决验证码错误的正确方法

2025-07-06 16:02:34作者:仰钰奇

在使用OpenBullet2进行自动化测试时,验证码处理是一个常见需求。许多从OpenBullet1迁移过来的用户会遇到验证码变量引用错误的问题,本文将详细解释如何正确配置验证码解决方案。

问题背景

在OpenBullet1中,验证码解决方案通常存储在名为SOLUTION的变量中。然而在OpenBullet2中,验证码模块的工作方式有所不同,它不会自动创建这个变量,而是将结果存储在用户指定的变量中。

错误示例分析

典型的错误配置如下:

BLOCK:SolveRecaptchaV3
  siteKey = "6LeECPQfAAAAACkqoH5ncOs_XrpeoCglJHa_hFGu"
  siteUrl = "https://example.com/sys/validecnh/"
  action = "submit"
  => VAR @solveRecaptchaV3Output
ENDBLOCK

BLOCK:HttpRequest
  url = $"https://example.com/sys/validecnh/"
  method = POST
  ...
  $"tokenrxpf=<SOLUTION>&cpf=<input.USER>"
  "application/x-www-form-urlencoded"
ENDBLOCK

这段代码会报错"error CS0103: The name 'SOLUTION' does not exist in the current context",因为OpenBullet2中不存在默认的SOLUTION变量。

正确配置方法

正确的做法是使用验证码模块输出时指定的变量名。在上例中,验证码结果存储在@solveRecaptchaV3Output变量中,因此应该这样引用:

BLOCK:HttpRequest
  ...
  $"tokenrxpf=<solveRecaptchaV3Output>&cpf=<input.USER>"
  ...
ENDBLOCK

变量命名建议

OpenBullet2允许用户自定义验证码结果的变量名,这为复杂配置提供了灵活性。建议采用有意义的命名方式,例如:

BLOCK:SolveRecaptchaV3
  ...
  => VAR @recaptchaToken
ENDBLOCK

然后在后续请求中引用<recaptchaToken>即可。

总结

OpenBullet2与OpenBullet1在验证码处理上的主要区别在于:

  1. OpenBullet2不会自动创建SOLUTION变量
  2. 用户必须显式指定验证码结果的存储变量名
  3. 在后续请求中需要使用相同的变量名引用验证码结果

理解这一差异后,开发者可以更灵活地配置验证码解决方案,避免常见的变量引用错误。

登录后查看全文
热门项目推荐