2013-09-25 86 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

相關問題