环境:Eclipse,Chrome,Java
我正在处理应用程序中的分页测试用例。我尝试了一些代码,但它只移动到第2页。
代码:
List<WebElement> allpages = driver.findElements(By.xpath("//div[@class='pagination']//a"));
System.out.println(allpages.size());
if(allpages.size()>0)
{
System.out.println("Pagination exists");
for(int i=0; i<allpages.size(); i++)
{
Thread.sleep(3000);
allpages.get(i).click();
driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
//System.out.println(i);
}
}
else
{
System.out.println("Pagination doesn't exists");
}
}
显示的大小为12.问题是它仅向上移动到第二页,然后显示StaleElementReference的错误
这是相同分页的HTML代码。 HTML代码:
<div id="page-navigation" class="pull-right">
<div id="303b171e-5a26-e456" class="flex-view">
<div class="pagination">
<ul>
<li class="">
<a href="#" data-value="0">«</a>
</li>
<li class="" data-value="0">
<a href="#" data-value="0">1</a>
</li>
<li class="" data-value="1">
<a href="#" data-value="1">2</a>
</li>
<li class="active" data-value="2">
<a href="#" data-value="2">3</a>
</li>
.....
答案 0 :(得分:1)
单击其中一个分页链接后加载新页面时,所有页面WebElements不再有效,需要再次找到。您必须在for循环中再次调用allpages = driver.findElements(By.xpath("//div[@class='pagination']//a"));
,以便为每个新页面获取新的引用。