Переход по ссылкам на странице результата поиска

Суть задачи такая, хочу выполнить переход по ссылкам на странице результата гугл поиска.
Скрипт заходит на страницу гугла выполняет поиск по запросу “test”, переходит на первую ссылку и возвращается на станицу результата поиска, а при попытке перейти на следующую страницу фэйлиться с ошибкой “element is not attached to the page document” .
почитал поискал, говорят нужно добавить ожидалку. Добавил, но все равно результат тот же
Подскажите пожалуйста где накосячил и что делаю не так
Код

@Test
public void MainTest() {
WebElement searchfield = driver.findElement(By.id(“lst-ib”));
searchfield.sendKeys(“test”);
searchfield.submit();

	List<WebElement> resultLinks = driver.findElements(By.xpath(".//*[@id='rso']//h3/a"));
	for (WebElement element : resultLinks) {

		new WebDriverWait(driver, 10)
				.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='rso']//h3/a")));

		element.click();

		driver.navigate().back();
	}

}

ошибка вот такая org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document

Когда вы перешли по ссылке и вернулись - все ваши resultsLinks “потухли”.
Ищите их снова, перед тем как кликнуть, и кликайте по элементу по его индексу в массиве.

@Mes можешь подсказать как это реализовать в коде?

Java я не знаю.
Вот псевдокод

List<WebElement> resultLinks = driver.findElements(By.xpath(".//*[@id='rso']//h3/a"));
int resultLinksLength = resultLinks.length(); // знаем, сколько всего элементов на 1 странице

for (int i = 1; i <= resultLinksLength; i++) { // бежим по циклу
    new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[@id='rso']//h3/a"))); 

    List<WebElement> resultLinks = driver.findElements(By.xpath(".//*[@id='rso']//h3/a")); // получаем снова список вебэлементов
    resultLinks[i].click(); // кликаем на нужный по индексу
    // что-то делаем
    driver.navigate().back();
}

Как-то так. Пишу с телефона.

1 Like

или открывать новый таб по каждой из ссылок … just my two cents

@Mes Спасибо большое, все получилось