2016-04-13 18 views
1

Bir javascript uyarısı mevcut olana kadar düğmeyi tıklatarak istiyorum.Selenium'da uyarı mevcut olana kadar düğmeyi tıklayın

while(!ExpectedConditions.alertIsPresent()) 
    button.click(); 

Ama bu ifade bir boolean duruma değerlendirilmez olarak çalışmaz: Burada

ben yapmak istiyorum şeydir.

while(ExpectedConditions.alertIsPresent() == null) 
    button.click(); 

Ama bu asla döngüye gidiş sonuçlanır:

denedim. Herhangi rehberlik

cevap

0

yüklem ExpectedConditions.alertIsPresent bir while doğrudan değerlendirilemez. uyarı mevcut olana kadar butona tıklarsa bir yüklemi uygulamak için daha iyi bir seçim olacaktır

WebDriverWait wait = new WebDriverWait(driver, 20); 
wait.until(ExpectedConditions.alertIsPresent()); 

Ama sizin durumunuzda: Bir garsonla kullanabilirsiniz

WebElement button = driver.findElement(By.id("...")); 

// clicks on the button every 100ms until the alert is present 
Alert alert = new WebDriverWait(driver, 20, 100).until((WebDriver drv)->{ 
    try{ 
     button.click(); 
     return drv.switchTo().alert(); 
    }catch(NoAlertPresentException ex){ 
     return null; 
    } 
}); 

// accept the alert 
alert.accept(); 
0

Bu geçici çözüm gidebilirsiniz için teşekkür ederiz: -

while(alert.getClass().getCanonicalName().toString().equals("org.openqa.selenium.remote.RemoteWebDriver.RemoteAlert")){ 
button.click(); 
} 
İlgili konular