2013-09-25 32 views
0

环境:Eclipse中,浏览器,Java的在分页显示的webdriver陈旧元素参考异常

我处理的测试案例在应用程序分页。我已经尝试了一些代码,但它只能移动到第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的问题是它的动作高达第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> 
..... 

回答

1

当新的页面点击分页链接之一后加载的所有页WebElements不再有效,需要再次发现。您必须在for循环中再拨打allpages = driver.findElements(By.xpath("//div[@class='pagination']//a"));,以便您可以为每个新页面获取新的参考。

+0

感谢它的工作:)我甚至尝试使用while循环并迭代它:) – user2376425

相关问题