我在单击元素后尝试放置中断,但在单击元素后尝试再次迭代
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;
}
}
}
答案 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:
}
}