如何使用java中的selenium Web驱动程序中的分页搜索表中的元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用java中的selenium Web驱动程序中的分页搜索表中的元素相关的知识,希望对你有一定的参考价值。
嗨我在我的脚本中遇到问题。我需要验证分页表中是否存在元素。我写下面的代码,但它显示错误,并且循环不起作用。任何人都可以帮助我在我的脚本?这是我的代码和我得到的错误:
//表的分页
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)
答案
当元素在dom中不再可用或已变得陈旧时,就会出现StaleElementReferenceException。为了纠正它,您需要再次获取元素然后对其进行操作。 例如,在您的情况下,它应该是:
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();
}
}
}
}
以上是关于如何使用java中的selenium Web驱动程序中的分页搜索表中的元素的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 selenium Web 驱动程序 python 在 html 中的标签之间添加标签
我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是不是被移除?
Selenium Web 驱动程序 - 在循环中等待 (Java)