java - 如何从列表中唯一地选择一个元素?
问题描述
我怎样才能从这个列表中唯一地选择一个元素?
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>
解决方案
您的代码中缺少一些内容,例如:
您已经为每个循环定义了这样的:
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();
应单击列表中的第二个元素。
并且您的 css 选择器nav-label
包含相同的文本Status Center,因此您必须编写不同的 css 选择器或任何其他定位器,因为这不起作用。
推荐阅读
- reactjs - 如何在“反应”中滚动时更改导航链接活动类或如何在反应中滚动时更改 window.loaction.hash
- android - Android 工作室背景横幅颜色
- c# - 在随机数猜测生成器中实现再次播放功能
- python - 熊猫系列在条件下添加上一行
- apache-spark - ColumnarToRow 如何在 Spark 中进行高效操作
- reactjs - ES lint 需要 redux 状态作为 useEffect 依赖项,这将导致无限重新渲染
- python - JSONDecodeError("期望值", s, err.value) 从无
- r - seq_len 2 参数中的错误传递给'seq_len',这需要 1 在 R 中使用 foreach 包?
- python - 如何在 Python 中访问和计算 Json 文件属性的值?
- python - 回文分区