Здравствуйте.
Есть список List<WebElement>
с динамическими элементами которые меняют свою ширину каждые два дня. Их количество так же меняется, поэтому прогнал через цикл for
, чтобы кликнуть на все по-очереди.
Все работало до тех пор, пока два элемента не приняли ширину значения 0
. Selenium Webdriver выдал ошибку:
Element is not clickable at point…
Теперь мне нужно сделать так, чтобы при встрече с таким элементом, Selenium пропускал этот элемент (на который он не может кликнуть) в цикле и переходил к следующему элементу, на который можно кликнуть (в данном случае это следущий элемент имеющий ширину больше 0).
Ниже привел код Java, с которым я пыталася работать, но пропустить некликаемый элемент и перейти к другому элементу не получается. Помогите советом.
Спасибо!
for (i = 0; i < elements.size(); i ++) {
elements.get(i).getSize().getWidth();
if (elements.get(i).getSize().getWidth() == 0) {
elements.get(i.next()).click();
}
elements.get(i).click();
}
Попробуйте так
for (i = 0; i < elements.size(); i++) {
if (elements.get(i).getSize().getWidth() <= 0) {
continue;
}
elements.get(i).click();
}
Оператор continue
начинает следующий проход цикла, минуя оставшееся тело цикла
UPD в условии указано "<= 0" т.к. поля с отрицательной шириной тоже не кликабельные
Пробежаться по всем элементам, отфильтровав с учётом нулевой длины, можно так:
elements.stream()
.filter(e -> e.getSize().getWidth() > 0)
.forEach(WebElement::click);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пишу программу для работы с com-портами на LinuxНадо подключиться к устройству через serial port, знаю его vid и pid
Добрый деньне совсем понел работу метода join(); у класса Thread Есть 2 потока у первого вызывается метод join но второй отказывается ждать его
Есть RecyclerView который выводит несколько пунктовУ каждого пункта своя разметка
У меня есть набор изображений для обучения: для двух персон по 10 изображений и 80 изображений различных персон для проверки достоверности...