Ruby/Selenium WebDriver - 暂停测试并等待用户输入,即用户输入captcha
问题描述:
我使用Selenium WebDriver和Ruby来执行一些自动化操作,并且在5步骤过程的第3步中遇到了验证码问题。Ruby/Selenium WebDriver - 暂停测试并等待用户输入,即用户输入captcha
我把所有的自动化都放在rake脚本中,所以我想知道是否有一个暂停或暂停运行的脚本的命令,直到我将数据输入到验证码中,然后继续运行在下一页上。
答
由于您正在脚本中编写测试,因此您需要做的就是在测试中添加睡眠,例如“睡眠100”。
但是,在测试中添加任意睡眠是不好的。你也可以做一些类似于“等待标题'foo'”的地方,其中'foo'是第4步中页面的标题。它不一定是标题,它可以是任何东西,但你明白了。等待某些语义指示第3步完成,第4步准备开始。
这样,其更有针对性的等待。
答
要建立在seleniumnewbie的答案,假设你有访问控制台的脚本运行:
print "Enter Captcha"
captchaTxt = gets.chomp
yourCaptchaInputWebdriverElement.send_keys captchaTxt
如果你只是想暂停并在浏览器中输入验证码,只需在控制台提示即可完成该操作,它就会坐在那里。
print "Enter the captcha in your browser"
gets
您还可以设置隐等待体面,时间久了,使硒会自动见下页和迁出。不过,除非你对你的评论非常肛门,否则这将会让你的测试中出现重要的验证码步骤(用于记录/处理过程)。
由于这是一个需要用户输入的积极参与的测试,我会说让测试仪在控制台上按下“enter”是一种方法。