Добрый день
Решил поэкспериментировать
К примеру пишу собственный метод
в метод передаю драйвер и локатор ок ??
public WebElement customWait(WebDriver driver, By by){
count++;
try{
//ждем 10 секунд появления элемента периодически просыпаясь и смотря а есть ли элемент ок ???
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
FluentWait wait = new FluentWait(driver).withTimeout(10,TimeUnit.SECONDS).pollingEvery(200,TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class);
element = (WebElement)wait.until(ExpectedConditions.visibilityOfElementLocated(by));
if( element.isDisplayed()){
return element;
}
}
catch{ StaleElementReferenceException except){
// типа рекурсия
if (count<2) {
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
customWaitBy(driver, by);
}
return null;
}
так вот вопрос вылетает периодически selenium.StaleElementReferenceException?? откуда ?? я же ловлю его
далее по все видимости isDispaly() может быть false при этом until(ExpectedConditions.visibilityOfElementLocated(by)) будет выполнятся это условие то есть visibilityOfElementLocated(By locator) — ожидание появления элемента в DOM и его видимости
как так то ??