- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What does fluent wait perform?
Fluent wait is a dynamic wait which makes the driver pause for a condition which is checked at a frequency before throwing an exception. The element is searched in DOM not constantly but at a regular interval of time.
For example, if the wait is for 5 seconds, FluentWait monitors the DOM at regular intervals (defined by polling during time). In FluentWait, customized wait methods based on conditions need to be built.
Syntax −
Wait<WebDriver> w = new FluentWait< WebDriver >(driver) .withTimeout (10, SECONDS) .pollingEvery (2, SECONDS) .ignoring (NoSuchElementException.class)
Example
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.support.ui.Wait; import org.openqa.selenium.support.ui.FluentWait; public class Fluentwt { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); String url = "https://www.tutorialspoint.com/index.htm"; driver.get(url); //implicit wait with time in seconds applied to each elements driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS); //Clicking on Coding Ground link driver.findElement(By.xpath("//span[text()=’Coding Ground’]")).click(); // fluent wait declaration Wait<WebDriver> w = new FluentWait<WebDriver>(driver).withTimeout (Duration.ofSeconds(30)) .pollingEvery(Duration.ofSeconds(3)).ignoring( NoSuchElementException.class); WebElement fl = w.until(new Function<WebDriver, WebElement>() { // customized condition for fluent wait public WebElement apply(WebDriver driver) { if (driver.findElement(By.xpath("[//img[@title=’Whiteboard’")) .isDisplayed()) { return true; }else { return null; } } }); driver.quit(); } }
Advertisements