【问题标题】:how to get the data from captcha in selenium webdriver如何从 selenium webdriver 中的验证码获取数据
【发布时间】:2013-09-21 13:29:35
【问题描述】:

我正在使用 Selenium webdriver (Java)。

我需要测试注册表,但在提交之前,会出现图像框(验证码),但每次执行都会更改。我想知道如何从图像(验证码)中获取数据。

谁能帮帮我?

【问题讨论】:

    标签: selenium webdriver selenium-webdriver


    【解决方案1】:

    如果验证码来自您控制的环境,您可能需要实施某种方法来表明您处于测试环境中,并让验证码系统返回一个已知值或某个预期值的指示符.

    另一方面,如果验证码来自您无法控制的其他来源,那么您可能是我们的幸运儿。在这一点上,您基本上与垃圾邮件发送者处于同一条船上,他们在不断地进行军备竞赛以编写可以视觉解析验证码的软件。

    更新

    我觉得有必要对问题、答案和 cmets 中提出的想法进行一些澄清。本质上,您正在处理以下情况之一(请注意,当我说“您的”时,我指的是您、您的公司、客户等):

    1) 您的表单,您的验证码系统:如果是这种情况,您最好的解决方案是与您的开发人员合作,为您的验证码添加“测试”模式,返回已知值或页面中的其他信息这表明预期值应该是什么。如果您能够使用由您或其他人编写的能够成功“读取”验证码图像的工具,那么您的系统就坏了。如果您可以在测试模式下执行此操作,那么如何阻止其他任何人(垃圾邮件发送者、黑客等)以完全相同的方式绕过您的验证码。

    2) 您的表单,第 3 方验证码系统:如果是这种情况,您最好的解决方案是再次查看系统是否有一些您可以使用的“测试”模式。我自己对这些系统没有经验,但总的来说,我会猜测那里的主要系统存在测试方法。 {Captcha System Name} 自动化测试 的 Google 搜索应该会返回一些关于如何使用系统进行测试的好提示。如果没有任何好处,您的下一个赌注是实现您自己的、内部的、仅测试的、虚拟验证码系统,该系统可以使用一些已知值并使您的验证码提供程序可配置,以便您可以在 test/dev 中指向您的测试系统/etc 和你在生产中的真实系统。

    3)另一种形式,未知的验证码系统:我将在这里大步向前,并假设这不是你的情况,但为了完整起见,我将包括它。如果这是您的情况,那么您根本没有测试任何东西,只是出于自己的原因寻求帮助绕过其他人的安全机制。如果是这种情况,请在不那么谨慎的网站上寻求您的帮助。

    【讨论】:

    • 我想知道将使用什么方法从图像(验证码)中获取值
    • 如果有任何希望找出价值,第一步是了解您使用的验证码系统。你能用你打电话的验证码系统更新你的问题吗?开发人员总是有可能包含一个您可以使用的测试选项。
    • 我正在网页上获取带有文本的新图像(验证码)。 (不重复)如何知道你使用的是什么验证码系统?
    • 与开发人员核实或让他们为所有请求添加一个验证码
    • 是的,但如果它是可读的,那么它就无法成为 CAPTCHA。对系统提出错误!
    【解决方案2】:

    引入验证码是为了防止机器人或自动化代码。没有自动化验证码的选项。

    1 .您可以给自动化等待时间,以便用户输入验证码。

    2。如果项目正在测试 url 方式,您可以要求您的系统管理员和开发人员禁用验证码验证。

    也许这可以帮助你,但我不会尝试这个..

    开发人员会为验证码生成一个随机值,并将该值转换为图像,并将该值存储在会话中,用于比较输入的输入是否与验证码匹配。

    因此,如果可能,您可以将该会话值作为输入。

    【讨论】:

      猜你喜欢
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 2021-09-17
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多