Как прокликать все элементы списка?

134
09 сентября 2019, 11:30

Нужно прокликать все ссылки в меню. На странице это выглядит так:

Пробую вот так, но после первой итерации валится:

List<WebElement> elementList =driver.findElements(By.cssSelector("#box-apps-menu a"));
    for ( int i=0; i<elementList.size(); i++){
        elementList.get(i).click();
    }

Подскажите пожалуйста, что не так? Текст ошибки:

org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document

Answer 1

После того, как страница перезагружается, elementList больше не указывает на меню на новой странице. После перезагрузки нужно снова строить elementList, а в качестве итератора для нажимания по ссылкам использовать переменную. Примерно так:

List<WebElement> elementList  =driver.findElements(By.cssSelector("#box-apps-menu a"));
int numberOfListElements = elementList.size();
    for (int i = 0; i < numberOfListElements ; i++){
        elementList = driver.findElements(By.cssSelector("#box-apps-menu a"))
        elementList.get(i).click();
        }

Пару дней назад столкнулся с такой же проблемой и решил её этим способом. Но на другом языке, так что возможно этот код придется подправить.

READ ALSO
Алгоритм сжатия картинок

Алгоритм сжатия картинок

Необходимо сжать картинку к размеру 204 800 КБРеализую сжатие при помощи thumbnailator

106
Ошибка such unique or primary key already exists in the table при использовании jpa?

Ошибка such unique or primary key already exists in the table при использовании jpa?

Приложение на sprign+jpa и базой oracle11g Настроен параметр генерации таблицы на основе предложенных сущностей JPA

122
Хранение данных в Android-приложении

Хранение данных в Android-приложении

Планирую создать Android-приложениеЗнаю, что есть множество различных способов хранения информации

140
Чем инверсия управления (Inversion of Control, IoC) отличается от инверсии зависимостей (Dependency Inversion Principle, DIP)?

Чем инверсия управления (Inversion of Control, IoC) отличается от инверсии зависимостей (Dependency Inversion Principle, DIP)?

В литературе встречаются два разных понятия Инверсия управления и Принцип инверсии зависимостей, которые сформулированы одинакаво:

115