我在下面编写了检查列表Web元素的代码,但是下面的代码正在运行但是只有第一项它没有循环到循环结束。
List <WebElement> listofItems = wd.findElements(By.xpath("//*[starts-with(@id,'result_')]//div//div[1]//div//a//img"));
for (int i=1; i<=listofItems.size(); i++)
{
listofItems.get(i).click();
wd.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
System.out.println(i);
System.out.println("pass");
wd.navigate().back();
}
答案 0 :(得分:4)
@Saifur 已经很好地解释了这个问题。所以,我将把你看到的代码放到
$scope.Somefunction = function (id) {
for (var i = 0; i < $scope.Cities.length; i++) {
if ($scope.Cities[i].id == id) {
var spliced = $scope.Cities.splice(i, 1);
spliced[0].destroy();
break;
}
}
}
所以,上面我刚刚调整了一下你的代码并得到了相关的评论,其中包含了更改以及原因。希望这对你有用。 :)
答案 1 :(得分:3)
这可能是DOM刷新的问题。您无法找到列表并来回浏览元素并引用相同的列表,因为DOM在首次单击后已刷新。该问题的最佳解决方案是即时查找元素。此外,一旦您设置了该驱动程序实例,隐式等待就是坚定的。因此,您不必设置等待每个元素的查找。而是将其设置为实例化驱动程序的位置。(可能)。但是,我认为明确的等待是最合适的。
$(document).ready(function() {
$("orgTable").tablesorter({
headers: {
4: {
sorter: false
},
5: {
sorter: false
}
}
});
});