0

所以我想wait直到显示一个警报,然后通常switch的警报和get text

Selenium 2 (WebDriver)提供了 Java 中的解决方案 :在调用 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

4

2 回答 2

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
于 2012-07-24T11:49:13.433 回答
0

如果你使用 watir 和 watir-webdriver 你可以做类似 $browser.wait_unitil_present

于 2012-06-05T22:11:54.417 回答