У меня реализовано ожидание List по presenceOfAllElementsLocatedBy условию. Метод реализован в BaseClass и выглядит:
protected List<WebElement>
waitForElements(By locator, WaitConditionForWebElements condition) {
return elements = wait.until(condition.getType().apply(locator));
}
Я столкнулся с проблемой, что при переходе на новую страницу нужный мне массив не успевает подгрузиться весь: после перехода в этом массиве лишь один элемент, когда проходит пару секунд, то все находится корректно. Я преобразовал этот метод добавив проверку на размер массива и счетчик (который странный как по мне, но рабочий). Метод срабатывает корректно, но я знаю
, что можно сделать явно легче/лучше. Привязывать счетчит жестко к времени sleep не хотелось бы. Идеально как я считаю, была бы реализация как в дефолтном ожидании (условие, общее время ожидания) .Мой метод сейчас выглядит так:
protected List<WebElement>
waitForElements(By locator, WaitConditionForWebElements condition){
List<WebElement> elements;
int counter = 1;
do {
elements = wait.until(condition.getType().apply(locator));
//System.out.println(elements.size());
counter++;
} while ((elements.size() == 1) && (counter < 30));
return elements;
}
Буду рад любому совету. Спасибо