Ruby / Selenium WebDriver - 暂停测试并等待用户输入,即用户输入验证码

时间:2011-12-30 19:17:41

标签: ruby selenium captcha selenium-webdriver

我正在使用Selenium WebDriver和Ruby来执行一些自动化,我在5步过程的第3步遇到了验证码问题。

我将所有自动化都放在rake脚本中,所以我想知道是否有一个暂停或暂停脚本运行的命令,直到我将数据输入验证码然后继续在下一页运行。

3 个答案:

答案 0 :(得分:1)

以seleniumnewbie的答案为基础并假设您可以访问控制台,脚本正在运行:

print "Enter Captcha"
captchaTxt = gets.chomp
yourCaptchaInputWebdriverElement.send_keys captchaTxt

如果你只是想暂停并在你的浏览器中输入验证码,你可以在控制台上提示它做那件事而且它只会坐在那里。

print "Enter the captcha in your browser"
gets

您还可以将隐式等待设置为相当长的一段时间,以便Selenium自动查看下一页并移出。然而,这将使重要的Captcha步骤(用于记录/处理缘故)离开你的测试,除非你对你的评论非常肛门。

由于这是一项需要用户输入的积极参与测试,我会说让测试人员在控制台上按“输入”是可行的。

答案 1 :(得分:0)

由于您是在脚本中编写测试,因此您需要做的就是在测试中添加一个睡眠,例如“睡眠100”。

但是,在测试中添加任意睡眠是不好的。您还可以执行类似“等待标题'foo'”的操作,其中'foo'是步骤4中页面的标题。它不一定是标题,它可以是任何内容,但您可以理解。等待语义,表明步骤3已完成,步骤4已准备好开始。

这样,它更有针对性的等待。

答案 2 :(得分:0)

这已经在JAVA中实现,但是类似的技术。可以找到你的解决方案here