2015-04-22 391 views
-3

有人可以請看看下面的代碼。它無限循環。請幫忙!While循環內無限循環Java Selenium

while (findelement("//*[starts-with(@class,'paging-next')]")) { 
     for (int i = 0; i < Hotel_Name.size(); i++) { 
      String h = Hotel_Name.get(i).getAttribute("title"); 
      String s = Star_Rating.get(i).getAttribute("class"); 
      System.out.println(h + "|" + s); 
     } 
    } 
+5

「findelement」函數到底做了什麼? – mhlz

回答

0

我假設findelement this(雖然它很可能不是,因爲如果它是你的代碼不會在這種狀態下編譯)。你需要用你的while循環做些什麼,目前它只是找到一個元素,但沒有布爾值來處理。所以你被返回一個webelement並永遠循環。試試這個:

while (findelement("//*[starts-with(@class,'paging-next')]").isDisplayed()) { 
    for (int i = 0; i < Hotel_Name.size(); i++) { 
     String h = Hotel_Name.get(i).getAttribute("title"); 
     String s = Star_Rating.get(i).getAttribute("class"); 
     System.out.println(h + "|" + s); 
    } 
} 

你而只顯示迴路元件通過這種方式,你也可以指定循環而它使能或選擇。這個想法是你只想在這些條件成立的時候讓它運行,而不是在它們是假的時候運行。

+1

如果它是findElement那麼代碼將不會編譯。我很確定我們在這裏錯過了一些代碼.... – mhlz