Нужно прокликать все ссылки в меню. На странице это выглядит так:
Пробую вот так, но после первой итерации валится:
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
После того, как страница перезагружается, 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();
}
Пару дней назад столкнулся с такой же проблемой и решил её этим способом. Но на другом языке, так что возможно этот код придется подправить.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей