It is used to provide wait time for a particular time, it is mostly used where we run multiple processes simultaneously.
Type of wait:-
1) Implicit wait:-
It is used to provide a particular time interval after that performs navigation or another process.
WebDriver driver;
driver.manage().timeouts.implicitWait(timeinterval,TimeUnit.Seconds);
public class WaitComandExample {
2) Explicit wait:-
It is used to provide wait time according to expected conditions using a web element.
Type of wait:-
1) Implicit wait:-
It is used to provide a particular time interval after that performs navigation or another process.
WebDriver driver;
driver.manage().timeouts.implicitWait(timeinterval,TimeUnit.Seconds);
public class WaitComandExample {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","c:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
Thread.sleep(5000);
//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://shivaconceptsolution.com/test.html");
driver.close();
}
}
2) Explicit wait:-
It is used to provide wait time according to expected conditions using a web element.
WebDriverWait wait=new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath")));
public class GmailExample { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","c:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://google.com/ncr"); driver.findElement(By.name("q")).sendKeys("cheese" + Keys.ENTER); // Initialize and wait till element(link) became clickable - timeout in 10 seconds WebElement firstResult = new WebDriverWait(driver,10).until(ExpectedConditions.elementToBeClickable(By.xpath("//a/h3"))); // Print the first result System.out.println(firstResult.getText()); } }
3) Fluent Wait Example:-
package scs;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.FluentWait;
public class WebDriverFluentWaitExample {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","c://chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://softwaretestingplace.blogspot.com/2017/02/selenium-fluent-wait.html");
driver.findElement(By.xpath("//*[@id=\"post-body-5280210221385817166\"]/div[1]/button")).click();
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofSeconds(10))
.pollingEvery(Duration.ofSeconds(5)).ignoring(NoSuchElementException.class);
WebElement element = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
WebElement element = driver.findElement(By.xpath("//*[@id='demo']"));
String getTextOnPage = element.getText();
if(getTextOnPage.equals("Software Testing Material - DEMO PAGE")){
System.out.println(getTextOnPage);
return element;
}else{
System.out.println("FluentWait Failed");
return null;
}
}
});
}
}
POST Answer of Questions and ASK to Doubt