DEV Community

Cover image for How to Use Implicit, Explicit, and Fluent  Wait with Selenium?
Pramod Dutta
Pramod Dutta

Posted on • Edited on

How to Use Implicit, Explicit, and Fluent Wait with Selenium?

✅Join us - https://sendfox.com/thetestingacademy

In this video, We are discussing Waits in Selenium or Different Types of Waits in Selenium.

  • Implicit wait in selenium.
  • Explicit wait in selenium.
  • Fluent wait in selenium

Waits in Selenium

🚀 Day 13 Task : Waits in Selenium
🚀 Thread : https://scrolltest.com/automation/day13
🚀 All Task List : https://scrolltest.com/automation/task
🚀 Watch Full Playlist : https://scrolltest.com/automation/playlist

✅ Implicit wait in selenium

  • Implicit wait is used to set a default wait time (say 20 secs) in your automation script to wait for an element on the page.
  • Features

    • Once implicit wait is set, it is applicable for the whole automation script.
    • Default wait time for Implicit wait is 0 secs.
    • Webdriver throws "No Such Element Exception" if element is not found in specified time. implicit wait is the maximum time set between two steps/commands of the automation script. Syntax
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    

✅ Explicit wait in selenium

  • Explicit wait can be called as conditional wait. It tells the WebDriver to wait for certain conditions before maximum time exceeded.
  • Features Explicit wait is intelligent wait, as it waits certain conditions It provides a better approach to handle dynamic ajax elements. WebDriver throws "ElementNotVisibleException" if explicit wait fails. It applies to only single element and not to whole script. Explicit wait is the best way to replace Thread.sleep() Syntax
 // Explicit Wait

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

✅ Fluent wait in selenium
Fluent wait is kind of conditional wait but with frequency.
It means fluent wait is used to wait for a condition with a regular frequency/time interval to be checked before throwing "ElementNotVisibleException".
Features
ElementNotVisibleException is element not found
it will check after every 5 secs for the element X
Syntax

//Fluent Wait

Wait wait = new FluentWait(WebDriver reference)
      .withTimeout(timeout, SECONDS)
      .pollingEvery(timeout, SECONDS)
      .ignoring(Exception.class);

WebElement foo = wait.until(new Function() {
     public WebElement apply(WebDriver driver) {
      return driver.findElement(By.id("foo"));
     }
    });

--
Be sure to subscribe for more videos like this!

 TheTestingAcademy

Top comments (0)