对于无限循环Java Selenium中的循环

时间:2015-04-22 13:14:39

标签: java selenium for-loop while-loop infinite-loop

有人可以看看下面的代码。它进入无限循环。请帮忙!

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);
        }
    }

1 个答案:

答案 0 :(得分: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);
    }
}

这样,只有在显示该元素时才会循环,您也可以在启用或选择时指定循环。我们的想法是,您只希望在这些条件为真时运行,而不是在它们为假时运行。