Skip to main content

Selenium waits


WebDriver driver = new ChromeDriver();

//implicit wait
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);


//explicit wait - wait given a timeout time
WebDriverWait webDriverWait = new WebDriverWait(driver, MAX_WAIT_TIME);
webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(GRID_TITLE_XPATH)));


//fluent wait - wait given a timeout time and polling interval
public WebElement fluentWait(final By locator) {
    Wait wait = new FluentWait(driver)
        .withTimeout(30, TimeUnit.SECONDS)
        .pollingEvery(2, TimeUnit.SECONDS)
        .ignoring(org.openqa.selenium.NoSuchElementException.class);

    //Can also use functions from ExpectedConditions class such as ExpectedConditions.visibilityOfElementLocated(By locator)
    WebElement element = wait.until(new Function() {
        public WebElement apply(WebDriver driver) {
            return driver.findElement(locator);
        }
    });
    
    return  element;
};
        
WebElement e = fluentWait(By.xpath(GRID_TITLE_XPATH));

Comments