Sometimes it works and sometimes it doesn't.
I've tried implicit wait:
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
I've tried explicit wait:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(ElementNames.CITYSEARCH_FIELD))).sendKeys(city);
Both don't seem to guarantee that my tests work 10/10 times. Is there a way to actually deal with something like this?
I've also tried something like this:
...
while(attempts < 2) {
try {
selector.selectByVisibleText(choice);
result = true;
break;
} catch(StaleElementReferenceException e) {
}
attempts++;
}
return result;
This method works on a more consistent basis compared to implicit/explicit wait. But still fails maybe once or twice depending on how long the tests are (e.g going through files with 200,000 lines and performing actions for each line)
Does anyone have any possible suggestion/solution?