【问题标题】:For Loop within While Infinite Loop Java Selenium无限循环Java Selenium中的For循环
【发布时间】:2015-04-22 13:14:39
【问题描述】:

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

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

【问题讨论】:

  • 函数“findelement”究竟是做什么的?

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


【解决方案1】:

我假设 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);
    }
}

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

【讨论】:

  • 如果是 findElement 那么代码将无法编译。我很确定我们在这里遗漏了一些代码......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多