2012-06-05 1 views
0

Так что я хочу wait до тех пор, пока не появится предупреждение, а затем обычный switch для предупреждения и get textКак использовать ждать оповещения рубина WebDriver

Решение в Java было предоставлено Selenium 2 (WebDriver): check that text exists before calling Alert.getText()

В настоящее время Я использую sleep, но все знают, насколько это плохо.

Это то, что я есть -

sleep 3 
a = $driver.switch_to.alert 
begin 
    a.text == 'Your alert here.' 
rescue 
    verify { assert_match "true","false","The alert failed to be displayed"} 
end 
a.accept 

Я ищу что-то вроде

$wait.until { a = $driver.switch_to.alert } 
begin 
    a.text == 'Your alert here.' 
rescue 
    verify { assert_match "true","false","The alert failed to be displayed"} 
end 
a.accept 

Но это не работает, он в основном игнорирует ожидание (у меня есть 30 секунд ждать BTW) , Как я уже говорил, мне нужно знать, как сделать это в RUBY - Test Unit

ответ

0

Если вы используете Watir и Watir-WebDriver вы можете сделать что-то вроде $ browser.wait_unitil_present

+0

nope не использует watir, спасибо за ваш ответ. – Amey

1

Там нет способа ждать оповещения появиться. Но вы можете использовать приведенный ниже код, чтобы дождаться появления предупреждения. Он выйдет из цикла, как только появится предупреждение.

status=true 
while (status) 
alert = driver.switch_to.alert rescue "exception happened" 
if (alert == "exception happened") 
status = true 
alert = "nothing happened" 
else 
status = false 
end 
end 
+0

Спасибо за ваш ответ. Это, я думаю, сработает, но приведет к другой проблеме времени. Я не хочу бесконечного цикла, если предупреждение никогда не появляется. Я хочу подождать 30 секунд, и если предупреждение не появится. Я хочу пропустить тест. – Amey

Смежные вопросы