2015-04-22 329 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