在幾個地方,現在面臨一些未處理的警報,因此每次點擊的規劃,以檢查是否警報存在,對於正在使用下面的代碼,如何檢查警報是否存在與零隱含硒等
public boolean isAlertPresent(){
try{
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
Alert a=driver.switchTo().alert();
a.accept();
return true;
}
catch (NoAlertPresentException e) {
return false;
}
finally{
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
}
但上面的代碼需要一些時間來檢查警報是否存在,因爲我將對每次點擊使用此方法,其等待時間太長,使得上述代碼中的隱式等待零不起作用。任何人都可以爲此提供幫助。
可能重複[如何等待Selenium webdriver中的警報?](http://stackoverflow.com/questions/12639280/how-to-wait-for-an-alert-in-selenium-webdriver) – alecxe 2014-11-22 06:12:56
在「可能重複」的問題中,有一個答案可能適合您的需求 - 它遵循「EAFP」方法:嘗試切換並處理異常,重複。 – alecxe 2014-11-22 06:14:02
@alecxe我的需求與此有點不同,我的問題是非常具體地檢查一個沒有任何隱含的等待的警報。舉例來說,如果使隱式等待零並檢查顯示的元素,它會立即給出結果,但在檢查警報時,情況並非如此,即使在將隱式等待爲零之後,它仍在等待某個時間。 – 2014-11-22 06:20:23