嗨,我的脚本遇到问题。我需要验证分页表中是否存在某个元素。 我写下面的代码,但它显示错误并且循环也无法正常工作。有人可以在我的脚本中帮我吗? 这是我的代码,也是我得到的错误:
//表的分页
List<WebElement> allpages=d.findElements(By.xpath("//div[@id='reportPagination_wrapper']//a"));
System.out.println("Total page : "+allpages.size());
if(allpages.size()>0)
{
System.out.println("pagination exist");
//click on pagination link
for(int i=0;i<=allpages.size();i++)
{
if(allpages.contains(flight_no))
{
System.out.println("record exists");
break;
}
else
{
System.out.println("eleenmt no");
allpages.get(i).click();
}
}
}
}
输出:总页数:13
pagination exist
eleenmt no
eleenmt no
失败:search_basedon_flightno
错误: org.openqa.selenium.StaleElementReferenceException:陈旧元素引用:元素未附加到页面文档 (会话信息:chrome = 71.0.3578.98)
答案 0 :(得分:1)
StaleElementReferenceException当元素在dom中不再可用或变得过时时出现。为了更正它,您需要再次获取元素,然后对其进行操作。
例如,您的情况应该是:
List<WebElement> allpages=d.findElements(By.xpath("//div[@id='reportPagination_wrapper']//a"));
System.out.println("Total page : "+allpages.size());
if(allpages.size()>0)
{
System.out.println("pagination exist");
//click on pagination link
for(int i=0;i<=allpages.size();i++)
{
allpages=d.findElements(By.xpath("//div[@id='reportPagination_wrapper']//a"));
if(allpages.contains(flight_no))
{
System.out.println("record exists");
break;
}
else
{
System.out.println("eleenmt no");
allpages.get(i).click();
}
}
}
}