Selenium - html 元素的计数器
Selenium - counter of html elements
我 运行 遇到了一个我不知道如何解决的问题。
<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 中做到这一点?
任何人也请建议如何将每个元素的文本值带到某个列表或table?
我需要从上面的列表(下拉列表)中选择所有元素以检查 "Add" 按钮是否处于非活动状态,然后删除所有元素并检查 "Add" 是否处于活动状态。
最后按下 'Add' 按钮并仅选择主列表中之前的元素(在执行测试之前显示的初始数据的备份类型)。
WebElement element=driver.findElement(By.id("dropdownSelectRole"));
List<WebElement> list=element.findElements(By.tagName("li"));
int count = list.size();
"list" 包含所有 <li>
元素,"count" 包含数字。
如果你真的只需要 li 元素的数量,你可以使用 xpath 尝试这个单行:
int count = findElements(By.xpath("//ul[@id = 'dropdownSelectRole']/li")).size();
无需在 int
中存储 LI
的数量,只需遍历元素本身并在循环内对它们进行操作,例如打印文字等
List<WebElement> lis = driver.findElements(By.cssSelector("#dropdownSelectRole > li"));
for (WebElement li : lis)
{
System.out.println(li.getText().trim());
}
CSS 选择器,#dropdownSelectRole > li
,意味着找到一个元素的 id (#) dropdownSelectRole 有一个子元素 (>) LI
.
如果确实需要存储LI
的个数,int count = lis.size()
对于您需要为每个元素做的其他事情,将代码添加到循环中,每个任务将在每个 LI
元素上执行。
我 运行 遇到了一个我不知道如何解决的问题。
<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 中做到这一点?
任何人也请建议如何将每个元素的文本值带到某个列表或table?
我需要从上面的列表(下拉列表)中选择所有元素以检查 "Add" 按钮是否处于非活动状态,然后删除所有元素并检查 "Add" 是否处于活动状态。 最后按下 'Add' 按钮并仅选择主列表中之前的元素(在执行测试之前显示的初始数据的备份类型)。
WebElement element=driver.findElement(By.id("dropdownSelectRole"));
List<WebElement> list=element.findElements(By.tagName("li"));
int count = list.size();
"list" 包含所有 <li>
元素,"count" 包含数字。
如果你真的只需要 li 元素的数量,你可以使用 xpath 尝试这个单行:
int count = findElements(By.xpath("//ul[@id = 'dropdownSelectRole']/li")).size();
无需在 int
中存储 LI
的数量,只需遍历元素本身并在循环内对它们进行操作,例如打印文字等
List<WebElement> lis = driver.findElements(By.cssSelector("#dropdownSelectRole > li"));
for (WebElement li : lis)
{
System.out.println(li.getText().trim());
}
CSS 选择器,#dropdownSelectRole > li
,意味着找到一个元素的 id (#) dropdownSelectRole 有一个子元素 (>) LI
.
如果确实需要存储LI
的个数,int count = lis.size()
对于您需要为每个元素做的其他事情,将代码添加到循环中,每个任务将在每个 LI
元素上执行。