2016-09-22 69 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