Моя цель:
- Итерация по веб-элементам на веб-странице
- Нажмите на все найденные элементы и откройте ссылку в том же сеансе
- Разобрать новую страницу с другой логикой
- Вернуться на предыдущую страницу и продолжить цикл для всех идентификаторов с предыдущим совпадением
У меня есть этот код:
List<WebElement> links = driver.findElements(By.cssSelector("div[data-sigil='touchable']"));
// this will display list of all images exist on page
for(WebElement ele:links)
{
System.out.println("test->"+ele.getAttribute("id"));
ele.click();
Thread.sleep(500);
System.out.println("URI->"+driver.getCurrentUrl());
js.executeScript("window.history.go(-1)");
}
return "ok";
, который работает нормально и находит правильный идентификатор элемента, "ele.click ()" на самом деле работает, но я всегда терплю неудачу при выполнении js.executeScript("window.history.go(-1)")
Это мое сообщение об ошибке:
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
(Session info: chrome=73.0.3683.103)
(Driver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.17134 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Так что в принципе я не могу продолжить цикл.
Есть ли какая-нибудь полезная техника для «перехода на новую вкладку» и управления другим сеансом драйвера Selenium?
Заранее большое спасибо за любые предложения.