Java &引用;StaleElementReferenceException:在缓存中找不到元素-可能页面在查找后已更改
我想找出页面上断开的链接 但当我试图点击第二个链接(检查页面上的断开链接)时,我在第二次迭代中遇到了一个错误 这是我的密码:Java &引用;StaleElementReferenceException:在缓存中找不到元素-可能页面在查找后已更改,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我想找出页面上断开的链接 但当我试图点击第二个链接(检查页面上的断开链接)时,我在第二次迭代中遇到了一个错误 这是我的密码: WebElement element =driver.findElement(By.tagName("a")); List<WebElement> links = driver.findElements(By.tagName("a")); System.out.println(links.size()); for (int ind
WebElement element =driver.findElement(By.tagName("a"));
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for (int index=0; index<links.size(); index++ ) {
links.get(index).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.getTitle();
driver.navigate().back();
}
WebElement=driver.findElement(按.tagName(“a”));
列表链接=driver.findElements(按.tagName(“a”));
System.out.println(links.size());
对于(int index=0;index我认为您不能在页面上存储元素、浏览然后再回来使用它们。每次到达新页面时,您都需要再次选择它们(类似于刷新)
试试这样的
for (int index=0; index<links.size(); index++ ) {
links = driver.findElements(By.tagName("a"));
links.get(index).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.getTitle();
driver.navigate().back();
}
for(int index=0;index如果页面重新加载链接(webelements列表),将失去单击下一个元素的权限
您可以执行如下操作来单击循环中的每个链接
WebElement element =driver.findElement(By.tagName("a"));
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for (int index=0; index<links.size(); index++ ) {
driver.findElements(By.tagName("a")).get(i).click(); //this is what I've change
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.getTitle();
driver.navigate().back();
}
WebElement=driver.findElement(按.tagName(“a”));
列表链接=driver.findElements(按.tagName(“a”));
System.out.println(links.size());
对于(int index=0;的不可扩展副本)
WebElement element =driver.findElement(By.tagName("a"));
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println(links.size());
for (int index=0; index<links.size(); index++ ) {
driver.findElements(By.tagName("a")).get(i).click(); //this is what I've change
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.getTitle();
driver.navigate().back();
}