有没有办法获得验证码值并将其存储在变量中?

时间:2010-06-02 10:12:12

标签: selenium

我在C#中使用Selenium RC我的应用程序在不同的注册页面中有3个Captha图像。我有一个巨大的脚本我将在夜间运行它(当我关闭时)。因此,我觉得如果我能捕获最后一个显示验证码图像值并将其存储到变量中以便我可以在相关字段上输入将会更好。可能吗?

4 个答案:

答案 0 :(得分:3)

Captcha无法轻松实现自动化。这就是他们被发明的原因!!

唉......您可以使用代码黑客和图像识别模式和脚本。它被称为OCR。 http://en.wikipedia.org/wiki/Optical_character_recognition

我不会写更多关于此的内容,因为我不会鼓励其他人黑客入侵。但是......首先:谷歌是你的朋友。第二:在我的测试环境中,我们使用了具有静态值的验证码。然后在它上线之前我们再次为算法删除它。

盖尔盖伊。

答案 1 :(得分:1)

是否有隐藏字段(名称不明显),其中包含验证码中使用的文本的高度加密副本,然后在您的selenium测试系统上使用私钥对其进行解码?

答案 2 :(得分:0)

出于测试目的,您需要以机器可读的方式发送验证码值,方法是将其作为附加字段发送。然后,您需要在测试完成后删除该字段。

答案 3 :(得分:0)

按顺序使用'hidden'类型的'input'标签来处理Captcha。

JavascriptExecutor js = (JavascriptExecutor) driver;  
//Set the captcha values using setAttribute
js.executeScript("document.getElementsByName('xxxx')[0].setAttribute('value', 'xxxx')");
driver.findElement(By.name("xxxx")).sendKeys("xxxx");