selenium 2.4.0,如何检查是否存在警报

在使用selenium 2.4.0之前,我有以下代码:

alert = page.driver.browser.switch_to.alert if alert.text .... end 

Selenium 2.4.0包含更改“*当没有警报时在switch_to.alert中提升。”,所以我得到一个No alert is present (Selenium::WebDriver::Error::NoAlertOpenError)exception。

如何使用selenium-web-driver 2.4.0检查是否存在警报?

这是一个选项:

 driver.switch_to.alert.accept rescue Selenium::WebDriver::Error::NoAlertOpenError 

如果存在警报,则会在警报上单击“确定”,否则它将正常(静默)失败。

我在Ruby中实现了一个处理这个问题的方法,我觉得很干净:

 def alert_present? begin session.driver.browser.switch_to.alert puts "Alert present! Switched to alert." true rescue puts "No alert present." return false end end 
 WebDriverWait wait = new WebDriverWait(driver, 18); wait.until(ExpectedConditions.alertIsPresent()); 
 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 

没有直接的方法来检查警报是否存在。 使用上述方法,您可以检查是否存在警报。 一旦出现警报,它将从while循环中出来