2016-09-22 64 views
0

我需要输入一次性密码,所以我编码如下,以提醒。我想让我的输入与硒webdriver

$driver = Selenium::WebDriver.for :firefox 
$driver.execute_script("window.promptResponse=prompt('Enter the onetime password')") 
alert = $driver.switch_to.alert 
sleep 5 
alert.accept 
input = $driver.execute_script("return window.promptResponse").to_s 
p input 

通过这种方式,我可以在输入密码时获得我的输入,并将其保留5秒钟。 (我的意思是我从来没有点击确定按钮)

但我不能得到它,当我点击确定前5秒通过。 有没有人有想法?

+0

您的意思是您在5秒钟之前在测试执行期间手动接受警报吗? – kotoj

+0

@kotoj我已经可以在5秒后接受提醒,但我想在5秒之前手动接受提醒。 – user3317977

回答

0

您无法获取它,因为脚本在获取输入值之前失败。 手动接受警报时,步骤alert.accept无法执行,因为没有要接受的警报。 在自动执行过程中,您不应该手动接受警报。

+0

我明白了。不管怎么说,还是要谢谢你 – user3317977