I want to apply a one specification to my selenium test's code as webdriver have to wait for web element to display or load on a webpage for anytime. It should be applicable for a every web element in the code. Is there any way to get this. Instead of applying implict wait or Webdriver wait when ever it required. I can use this specification so that even though in future any webElement take sometimes to get visible it will wait default till it is visible.
Asked
Active
Viewed 352 times
0
-
@DebanjanB That dup is not what OP is asking. He's asking how to apply a wait to ALL `.findElement()` calls without using implicit waits or `WebDriverWait` everywhere. Your dup is how to apply a wait to ONE call. See Guy's answer for an example of what OP is looking for. – JeffC Oct 25 '18 at 13:13
1 Answers
4
You can create a method which receives By
as parameter and returns WebElement
, and use it for all the element search instead of driver.findElement()
// Java syntax
public WebElement findElement(By by) {
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(by));
return element;
}
You can also put WebDriverWait wait = new WebDriverWait(driver, 30);
at class level instead of creating a new instance every time.

Guy
- 46,488
- 10
- 44
- 88