Исключение в потоке «main» org.openqa.selenium.StaleElementReferenceException: ссылка на устаревший элемент: элемент не прикреплен к документу страницы (Информация о сеансе: chrome = 83.0.4103.106) Для документации по этой ошибке посетите: https://www.seleniumhq.org/exceptions/stale_element_reference.html Информация о сборке: версия: '3.141.59', ревизия: 'e82be7d358', время: '2018-11-14T08: 25: 53' Информация о драйвере: org.openqa. selenium. chrome .ChromeDriver Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 83.0.4103.106, chrome: {chromedriverVersion: 83.0.4103.39 (ccbf011cb2d2b ..., userDataDir: * 1017 MOHAMM ~ 1 \ AppData \ L ...}, goog: chromeOptions: {debuggerAddress: localhost: 53846}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, прокси: Proxy (), setWindowRect: true, strictFileInteractability: false, таймауты: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn: virtualAuthenticators: true} Идентификатор сеанса: f9fd73fa86d306099bad2835337c25c0 *** Информация об элементе: {Using = xpath, value = // h3 [@ class = 'LC20lb DKV0Md']}
Снимок кода
Результаты отображаются для первой страницы, но когда я нажимаю на результаты второй страницы, я получаю StaleElementReferenceException
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class NavigateToGoogle {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
//driver.findElement(By.xpath("//input[@class='gLFyf gsfi'])")).sendKeys("zahid");
WebElement element=driver.findElement(By.name("q"));
element.sendKeys("mohammed zahid");
//element.click();
Thread.sleep(3000);
//driver.findElement(By.xpath("(//input[@type='submit'])[3]")).click();
List<WebElement> button=driver.findElements(By.name("btnK"));
System.out.println(button.size());
WebElement submit=driver.findElement(By.name("btnK"));
submit.submit();
WebElement matchingRes=driver.findElement(By.xpath("//h3[@class='LC20lb DKV0Md']"));
List<WebElement> listRes=matchingRes.findElements(By.xpath("//h3[@class='LC20lb DKV0Md']"));
System.out.println(listRes.size());
for(WebElement results:listRes)
{
String value = results.getText();
System.out.println(value);
}
driver.findElement(By.xpath("//a[@aria-label='Page 2']")).click();
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h3[@class='LC20lb DKV0Md']")));
WebElement matchingRes1=driver.findElement(By.xpath("//h3[@class='LC20lb DKV0Md']"));
matchingRes1.getSize();
List<WebElement> listRes1=matchingRes.findElements(By.xpath("//h3[@class='LC20lb DKV0Md']"));
System.out.println(listRes1.size());
for(WebElement results1:listRes1)
{
String value = results1.getText();
System.out.println(value);
}
}
}