使用 Selenium 时 Google 的 reCAPTCHA 被破坏

Posted

技术标签:

【中文标题】使用 Selenium 时 Google 的 reCAPTCHA 被破坏【英文标题】:Google's reCAPTCHA broken when using Selenium 【发布时间】:2017-01-09 17:14:25 【问题描述】:

我正在尝试自动化一个只有在填写 reCAPTCHA(要求识别图像)后才能访问一个页面的过程。

我对自动解决验证码不感兴趣,因为我手动完成验证码并让其他任务自动化就足够了;唯一的问题是验证码小部件已损坏,并且在 Selenium 打开的 Firefox 窗口中出现了一个奇怪的错误(虽然它适用于我的普通 Firefox 实例),这使我无法完成它,即使手动也是如此。

错误:每次我尝试选择一张图片时,它都会淡出并弹出一个新的图片,取而代之。我无法选择任何图像,也无法验证验证码。

什么可能导致这种行为?这两个 Firefox 实例看起来相同(同样的用户代理也是如此),但必须有一些不同的东西才能发生。我该如何调试?

【问题讨论】:

如果您代表网站开发人员进行测试,请尝试使用测试密钥来停止捕获触发:developers.google.com/recaptcha/docs/faq 【参考方案1】:

图像淡出是 reCAPTCHA 的预期行为之一。如果单击图像时图像淡出,则其他图像将取代它。这将在您单击 reCAPTCHA 要求您选择的所有图像之前发生。完成单击所有图像后,您可以单击 reCAPTCHA 弹出窗口中可用的复选框,您将通过 reCAPTCHA。您也可以参考这个 reCAPTCHA 常见问题页面了解更多详情 -> https://developers.google.com/recaptcha/docs/faq

希望这会有所帮助。

【讨论】:

以上是关于使用 Selenium 时 Google 的 reCAPTCHA 被破坏的主要内容,如果未能解决你的问题,请参考以下文章

如何绕过 Google reCAPTCHA 使用 Selenium 进行测试

Selenium Google 登录块

从 Selenium 触发时,Google Chrome 无法导航到指定的 URL

我正在使用带有 Selenium 的 Google Chrome 浏览器,在亚马逊上运行时,它会检测到它并阻止一切。我可以绕过这个吗?

com.google.gson.stream.MalformedJsonException:使用 JsonReader.setLenient(true) 在将 Selenium Grid 节点注册到

在 Selenium 中更改 Google Chrome 用户代理的方法?