【问题标题】:How to bypass recaptcha human check in nightwatch test?如何在夜间测试中绕过 recaptcha 人工检查?
【发布时间】:2016-03-18 07:40:27
【问题描述】:

我正在为包含Google's "recaptcha" human check 的主干视图编写夜班测试。显然,测试是一个机器人,所以它不能通过测试。所以我试图找出一种方法来绕过测试中的人工检查。谁能提出一种优雅的方法来做到这一点?

目前,我能看到的唯一可能性是在 nightwatch 用来加载页面的 url 上设置一个查询参数,然后在 Backbone 视图的逻辑中检查该查询参数,但这似乎很糟糕。我不想在代码本身中包含有关测试的逻辑。就是乱七八糟。

想法?

【问题讨论】:

  • 我不会创建 URL 参数。这是默默无闻的安全教科书示例。另一方面,您自己的服务器不参与验证验证码的过程吗?在这种情况下,您可以使用环境变量来指示您正在运行测试,检查它并忽略挑战的结果。它仍然不漂亮,但与 URL 参数不同,它现在至少包含在您的服务器端,并且客户端无法覆盖验证码。
  • @ivarni 好主意。这有点混乱,但这里没有那么多其他可能性。我很惊讶没有更好的解决方案存在,因为我认为这种情况经常发生。我们仍在研究如何最好地做到这一点。
  • 这不是我的想法,NODE_ENV 用于许多节点模块(例如express)以根据上下文更改某些行为。前段时间我才看到,觉得使用系统环境比使用系统环境的大多数替代方案要好,并且在我遇到这样的事情的大部分时间都使用它。

标签: testing backbone.js nightwatch.js


【解决方案1】:

我看到雷蒙德上面的评论有相同的答案,但我仍然认为在这里添加答案应该更明显。

Google 有关于如何在测试环境中绕过 reCAPTCHA 的文档,请查看: https://developers.google.com/recaptcha/docs/faq#id-like-to-run-automated-tests-with-recaptcha.-what-should-i-do

对于生产,我认为这是不可能的,除非你有一些智能 OCR 工具,比如 endtest 提供:https://endtest.io/guides/docs/dealing-with-recaptcha/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2022-06-16
    • 2021-09-22
    • 2017-12-14
    • 2017-10-02
    相关资源
    最近更新 更多