2017-06-02 120 views
0

正确的等待,等待一个元素消失?正确等待等待元素消失?

我有它加载一个按钮后,例如点击一个ajax装载机,是我的方法正确序等待一个特定的负载棒,这需要屏幕的整个宽度和高度上消失?

public void waitUntilAjaxLoaderDisapears() { 
    // Wait up to 2minutes for the element to disappear 
    WebDriverWait ajaxWait = new WebDriverWait(this.driver, 60); 
    ajaxWait.pollingEvery(100, TimeUnit.SECONDS); 
    try { 
     //tempWait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(".modal-body"))); 
     ajaxWait.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("//*[contains(@class, 'ajax_loader')]"))); 
    } catch (UnhandledAlertException e) { 
     Alert alert = driver.switchTo().alert(); 
     alert.accept(); 
    }catch (NoAlertPresentException e) { 
     // 
    }catch (StaleElementReferenceException e) { 
     // do nothing 
    } catch (NullPointerException e) { 
     // do nothing 
    } catch (Exception e) { 
     // do nothing 
    } 
} 
+0

“屏幕上消失”,我们才能创造这个消失的屏幕webelement?当装载器屏幕出现我可以证实该定位器是上述 –

+0

@santhosh库马尔是轮询时间应小于实际等待时间。它必须小于60 – Gbru

+2

一个观测所列 –

回答

1

我想我得到了问题。轮询时间应该少于整个等待时间。因此,它可以是,

WebDriverWait ajaxWait = new WebDriverWait(this.driver, 60); 
ajaxWait.pollingEvery(**5**, TimeUnit.SECONDS); 

而不是

WebDriverWait ajaxWait = new WebDriverWait(this.driver, 60); 
ajaxWait.pollingEvery(100, TimeUnit.SECONDS); 

希望这有助于你。谢谢。