0

环境:Eclipse、Chrome、Java

我正在处理应用程序中的分页测试用例。我试过一些代码,但它只移动到第二页。

代码 :

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。问题是它仅移动到第 2 页,然后显示 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>
.....
4

1 回答 1

1

单击其中一个分页链接后加载新页面时,所有页面 WebElements 不再有效,需要重新查找。您必须allpages = driver.findElements(By.xpath("//div[@class='pagination']//a"));在 for 循环中再次调用,以便您可以为每个新页面获取新的引用。

于 2013-09-25T17:12:17.370 回答