如何在java中打破循环

时间:2016-04-24 10:55:10

标签: java loops selenium break

我在单击元素后尝试放置中断,但在单击元素后尝试再次迭代

for (int i = 1; i < tableSize; i++) {       
        final List<WebElement> columnElements = tableRows.get(i).findElements(By.tagName("td"));
        for(WebElement columnElement : columnElements) {
            if(columnElement.getText().equalsIgnoreCase(alias)) {

                findElement(By.xpath(button.replace("{rowValue}", String.valueOf(i)))).click(); 
                findElement(By.xpath(("//tr[{rowValue}]" + text).replace("{rowValue}", String.valueOf(i)))).click();
                break;
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

当你写break时,你只是打破了最本地的循环(在这种情况下是for(WebElement columnElement : columnElements)):

如果为外部循环设置循环名称,如

 loopName:
 for (int i = 1; i < tableSize; i++) {
 ....

然后你可以打破它,如下面的代码所示:

loopName:
for (int i = 1; i < tableSize; i++) {       
    final List<WebElement> columnElements = tableRows.get(i).findElements(By.tagName("td"));
    for(WebElement columnElement : columnElements) {
        if(columnElement.getText().equalsIgnoreCase(alias)) {

            findElement(By.xpath(button.replace("{rowValue}", String.valueOf(i)))).click(); 
            findElement(By.xpath(("//tr[{rowValue}]" + text).replace("{rowValue}", String.valueOf(i)))).click();
            break loopName;
        }
    }
}

这将使你脱离两个循环,这看起来就像你要求的那样。

答案 1 :(得分:0)

使用标签从外循环中断:

outerloop:
for (int i = 1; i < tableSize; i++) {  
    ....
    ....
    for (... another loop ...) {
        .....
        .....
        break outerloop:
    }
}