2014-01-15 58 views
0

排序網格並聲明沒有顯示錯誤錯誤對話框(這是我正在測試的應用程序中的常見錯誤)時遇到了狀態引用。我發現了一個解決方法,但我想一定有更好的解決方案。我現在每次點擊列標題後都會重新設置對象網格標題,這似乎是對我這樣做的一個不好的方法。什麼是這樣做使用網頁驅動器排序EXT網格時的陳舊參考

for(int i=0; i<10; i++){ 
    Thread.sleep(1000); 
    gridHeaders = this.getDriver().findElements(By.cssSelector("<grid headers>")); 
    gridHeaders.get(i).click(); 
    assertNumberOfElements(By.cssSelector("div.errorDialog"), 0); 
    gridHeaders = this.getDriver().findElements(By.cssSelector("<grid headers>")); 
    gridHeaders.get(i).click(); 
    assertNumberOfElements(By.cssSelector("div.errorDialog"), 0); 
} 
+0

就我所知,無法繞過StaleElement異常。一旦你導航到一個不同的頁面(當你點擊一個元素,這就是發生了什麼),你發現的所有以前的元素是「可能陳舊」。 –

+0

第二個想法...見下面的答案... –

回答

0

你可以先遍歷所有這些元素,並得到他們的「href」目標,或不管它是您重定向當你點擊它們的更好的方法。

然後,在保存所有這些字符串(與Selenium Web Elements不能成爲「陳舊」不同)後,您可以使用webDriver.get()webDriver.navigate().to()(它們本質上是相同的操作)單獨導航到每個URL。

相關問題