如何在ruby webdriver中使用等待警报

时间:2012-06-05 21:54:59

标签: ruby selenium webdriver

所以我希望wait直到显示提醒,然后通常switch提醒并get text

提供了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秒的等待顺便说一句)。 正如我所提到的,我需要知道如何在 RUBY - Test Unit

中执行此操作

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果您使用watir和watir-webdriver,您可以执行类似$ browser.wait_unitil_present

的操作