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

问题描述:

我使用Selenium WebDriver和Ruby来执行一些自动化操作,并且在5步骤过程的第3步中遇到了验证码问题。Ruby/Selenium WebDriver - 暂停测试并等待用户输入,即用户输入captcha

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

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

但是,在测试中添加任意睡眠是不好的。你也可以做一些类似于“等待标题'foo'”的地方,其中'foo'是第4步中页面的标题。它不一定是标题,它可以是任何东西,但你明白了。等待某些语义指示第3步完成,第4步准备开始。

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

这在JAVA中实现,但类似的technique.Your可以找到解决办法here

要建立在seleniumnewbie的答案,假设你有访问控制台的脚本运行:

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

如果你只是想暂停并在浏览器中输入验证码,只需在控制台提示即可完成该操作,它就会坐在那里。

print "Enter the captcha in your browser" 
gets 

您还可以设置隐等待体面,时间久了,使硒会自动见下页和迁出。不过,除非你对你的评论非常肛门,否则这将会让你的测试中出现重要的验证码步骤(用于记录/处理过程)。

由于这是一个需要用户输入的积极参与的测试,我会说让测试仪在控制台上按下“enter”是一种方法。