Я пытаюсь выполнить опрос советников по путешествиям. В некоторых отзывах есть ссылка more
, в которой отображается весь текст отзыва при нажатии. Однако, когда я имитирую клик, используя Selenium, изменения DOM, которые дают мне Stale Element Exception
. Я пытаюсь обойти это, получив DOM снова, но ошибка все еще существует. Где я иду не так?Stale Element Exception Java Selenium
List reviews = driver.findElements(By.className("review"));
for (int x = 0; x < reviews.size(); x++) {
WebElement element = driver.findElements(By.className("review")).get(x);
try {
if (element.findElements(By.className("expandLink")).size() > 0)
if (element.findElement(By.className("expandLink")).findElement(By.className("ulBlueLinks")).getText().startsWith("More")) {
element.findElement(By.className("ulBlueLinks")).click();
if (driver.findElements(By.className("ui_overlay")).size() > 0)
driver.findElement(By.className("ui_overlay")).findElement(By.className("ui_close_x")).click();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
while (driver.findElements(By.className("ui_close_x")).size() > 0)
driver.findElement(By.className("ui_close_x")).click();
element = driver.findElements(By.className("review")).get(x);
String rating = element.findElement(By.className("ui_bubble_rating")).getAttribute("class").split(" ")[1].replaceAll("bubble_", "");
String review = element.findElement(By.className("entry")).getAttribute("innerHTML").replaceAll("<[^>]*>", "").replaceAll("[,\n]", " ");
Эй, спасибо за вашу помощь. Однако ошибка происходит не из-за щелчка, а из следующих операторов после щелчка, утверждения 'String rating' ... onwards. –