如何从此列表中唯一选择一个元素?
List<WebElement> listout = driver.findElements(By.cssSelector("span[class='nav-label']"));
for (list:listout) {
list.click();
}
list[1].click();
<a _ngcontent-c3="" routerlinkactive="active" class="level-2 expanded ng-star-inserted" href="/rld/(rl:dashboard_tab)">
<span _ngcontent-c3=""></span>
<span _ngcontent-c3="" class="nav-label">Status Center</span>
</a>
<<pseudo:before>></<pseudo:before>>
<span _ngcontent-c3=""></span>
<span _ngcontent-c3="" class="nav-label">Status Center</span>
<a _ngcontent-c3="" routerlinkactive="active" class="level-2 expanded ng-star-inserted" href="/rld/(rl:dashboard_tab)">
<span _ngcontent-c3=""></span>
<span _ngcontent-c3="" class="nav-label">Status Center</span>
</a>
答案 0 :(得分:0)
您的代码中缺少某些内容,例如:
您已经为每个循环定义了这样的内容:
for (list:listout) {}
这是不正确的,您肯定遇到了编译时错误。
应该是这样的:
for (WebElement list:listout) {}
然后您可以尝试以下代码:
List<WebElement> listout = driver.findElements(By.cssSelector("span[class='nav-label']"));
for (WebElement list : listout) {
if(list.getText().contains("Your Unique element's text")){
list.click();
}
}
请注意,list[1].click();
应该单击列表中的第二个元素。
nav-label
和您的css选择器包含相同的文本状态中心,因此您将不得不编写不同的css选择器或任何其他定位器,因为这将不起作用。