我遇到了一个我不知道如何解决的问题。
<ul id="dropdownSelectRole" class="dropdown-menu" role="menu">
<li><a href="#"></a></li>
<li><a href="#">Admin</a></li>
<li><a href="#">aaaa</a></li>
<li><a href="#">abcd</a></li>
<li><a href="#">admin</a></li>
</ul>
我需要计算<li>
个元素的数量,以便将它放入int并稍后在while循环中使用。
任何建议(或准备好的代码)我怎么能在java中做到这一点?
还有人建议如何将每个元素的文本值带到某个列表或表格中吗?
我需要选择上面列表中的所有元素(下拉列表)来检查&#34;添加&#34;按钮将处于非活动状态,之后删除所有元素并检查&#34;添加&#34;活跃。 毕竟按下&#39;添加&#39;按钮并仅选择主列表中之前的元素(执行测试之前显示的初始数据的备份类型)。
答案 0 :(得分:3)
WebElement element=driver.findElement(By.id("dropdownSelectRole"));
List<WebElement> list=element.findElements(By.tagName("li"));
int count = list.size();
“list”包含所有<li>
元素,“count”包含数字。
答案 1 :(得分:2)
无需在LI
中存储int
的数量,只需遍历元素本身并在循环内对其进行操作,例如打印文本等
List<WebElement> lis = driver.findElements(By.cssSelector("#dropdownSelectRole > li"));
for (WebElement li : lis)
{
System.out.println(li.getText().trim());
}
CSS选择器#dropdownSelectRole > li
意味着找到一个带有id(#)dropdownSelectRole的元素,它有一个子(&gt;)LI
。
如果您确实需要存储LI
s,int count = lis.size()
对于你需要为每个元素做的其他事情,在循环中添加该代码,每个任务将在每个LI
元素上执行。
答案 2 :(得分:1)
如果你真的只需要li元素的数量,你可以使用xpath尝试这个单行:
int count = findElements(By.xpath("//ul[@id = 'dropdownSelectRole']/li")).size();