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

Ruby/Selenium WebDriver-暂停测试并等待用户输入,即用户输入验证码,ruby,selenium,captcha,selenium-webdriver,Ruby,Selenium,Captcha,Selenium Webdriver,我正在使用SeleniumWebDriver和Ruby执行一些自动化操作,在5步流程的第3步中遇到了验证码问题 我在一个rake脚本中抛出了所有的自动化操作,所以我想知道是否有命令暂停或中断临时运行的脚本,直到我将数据输入captcha,然后在下一页继续运行。因为您是在脚本中编写测试,所以您需要做的就是在测试中添加睡眠,例如“睡眠100” 然而,在测试中添加任意睡眠是不好的。您还可以执行类似“等待标题‘foo’”的操作,其中‘foo’是步骤4中页面的标题。它不一定是标题,它可以是任何东西,但你得

我正在使用SeleniumWebDriver和Ruby执行一些自动化操作,在5步流程的第3步中遇到了验证码问题


我在一个rake脚本中抛出了所有的自动化操作,所以我想知道是否有命令暂停或中断临时运行的脚本,直到我将数据输入captcha,然后在下一页继续运行。

因为您是在脚本中编写测试,所以您需要做的就是在测试中添加睡眠,例如“睡眠100”

然而,在测试中添加任意睡眠是不好的。您还可以执行类似“等待标题‘foo’”的操作,其中‘foo’是步骤4中页面的标题。它不一定是标题,它可以是任何东西,但你得到的想法。等待指示步骤3已完成且步骤4已准备好开始的内容


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

因为您是在脚本中编写测试,所以您需要做的就是在测试中添加睡眠,例如“睡眠100”

然而,在测试中添加任意睡眠是不好的。您还可以执行类似“等待标题‘foo’”的操作,其中‘foo’是步骤4中页面的标题。它不一定是标题,它可以是任何东西,但你得到的想法。等待指示步骤3已完成且步骤4已准备好开始的内容


这样,它的目标就更明确了。

这已经在JAVA中实现,但采用了类似的技术。可以找到您的解决方案。

这已经在JAVA中实现,但采用了类似的技术。您的解决方案可以在seleniumnewbie的答案的基础上找到,并假设您可以访问脚本运行的控制台:

print "Enter Captcha"
captchaTxt = gets.chomp
yourCaptchaInputWebdriverElement.send_keys captchaTxt
如果你只是想暂停并在浏览器中输入验证码,你可以让它在控制台上提示你去做这件事,它就在那里

print "Enter the captcha in your browser"
gets
您还可以将隐式等待设置为相当长的时间段,以便Selenium能够自动看到下一页并移出。然而,这会将重要的验证码步骤(为了记录/处理)排除在测试之外,除非您对您的评论非常熟悉


由于这是一个需要用户输入的积极参与测试,我想说让测试人员在控制台上按“回车”是一个好办法。

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

print "Enter Captcha"
captchaTxt = gets.chomp
yourCaptchaInputWebdriverElement.send_keys captchaTxt
如果你只是想暂停并在浏览器中输入验证码,你可以让它在控制台上提示你去做这件事,它就在那里

print "Enter the captcha in your browser"
gets
您还可以将隐式等待设置为相当长的时间段,以便Selenium能够自动看到下一页并移出。然而,这会将重要的验证码步骤(为了记录/处理)排除在测试之外,除非您对您的评论非常熟悉

由于这是一个需要用户输入的积极参与的测试,我想说让测试人员在控制台上按“回车”是一种方法