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循环中出来