В общем внизу скрин описывает саму суть проблемы. Есть две строки кода, по не понятной мне причины не могу переменной присвоить количество найденых элементов, хотя во второй строке кода смогу спокойно вывести их количество.
Почему я не могу присвоить переменной значение? Как это грамотно сделать?
Я пишу на java и использую testng. По мере работы накопилось пару вопросов.
Как можно определить что нет элемента на странице?
Я хочу это вставить в while (сюда) {а тут добавлять thread.sleep(200);} тем самым я торможу работу программы пока не появиться элемент для работы с ним.Я думаю это будет самый оптимальный вариант, т.к. мои функции описаные ниже работают не каждый раз.
public class Wait {
private final MyDriver driver;
public Wait(MyDriver driver) {
this.driver = driver;
}
public void wait(ExpectedCondition<WebElement> condition) {
driver.createWait(10).pollingEvery(2, TimeUnit.SECONDS).until(condition);
}
public void clickable(WebElement element) {
wait(ExpectedConditions.elementToBeClickable(element));
}
public void visible(WebElement element) {
wait(ExpectedConditions.visibilityOf(element));
}
}
2. Как написать стабильную функцию которая будет ожидать полной загрузки страницы которую я могу впихнуть перед каждым тестом или после перехода по ссылке? Я спрашиваю потому что у меня сейчас тот Wait который якобы может ждать пока элемент будет visible или clickable. Вроде написано все грамотно, но каждый 4-й раз появляется ошибка... Это очень важный момент, тк у меня 80% ошибок только из-за еще не отобразимых элементов на странице