Я изучаю Selenium и пытаюсь выполнить упражнение, в котором мне нужно выбрать конкретную дату в календаре.Сначала я собираю все веб-элементы, отфильтрованные по имени класса, в списке, а затем пытаюсь перебрать их, используя Streams API, с необходимой мне датой в качестве условия, а затем пытаюсь щелкнуть по ней.Я успешно могу выбрать свою дату, но сразу после этого в консоли я вижу исключение устаревшего элемента.
Я читал некоторые другие потоки, где они предположили, что это могло быть устаревшим, потому что элемент уничтожени затем воссоздал, другой вопрос, который у меня есть, почему кто-то хочет сделать это и какая польза от разрушения и воссоздания?Я попытался сделать driver.navigate (). Refresh (), но это не помогло.
driver.get("https://www.path2usa.com/travel-companions");
driver.findElement(By.name("travel_date")).click();
List<WebElement> elements = driver.findElements(By.className("day"));
System.out.println(elements.size());
elements.stream().forEach(p -> {
if (p.getText().equalsIgnoreCase("24")) {
p.click();}
});
Ожидается: дата должна быть выбрана, и после этого в консоли Eclipse не будет выдано никаких ошибок.
Факт: Исключение в потоке "main" org.openqa.selenium.StaleElementReferenceException: ссылка на устаревший элемент: элемент не прикреплен к документу страницы