我有以下HTML代码。
<ul class="options">
<li class="first popover-options ">data</li>
<li class="first popover-options disabled">data2</li>
<li class="first popover-options ">data3</li>
</ul>
我需要选择带有class =“ first popover-options”的元素,即它不应包含禁用的元素。如何在Java中使用Selenium做到这一点?
答案 0 :(得分:1)
您可以尝试以下代码:
List<WebElement> ListEle= driver.findElements(By.cssSelector("li.first popover-options"));
for (WebElement tempEle : ListEle) {
if(tempEle.getText().contains("Data"))
{
tempEle.click();
}
}
请注意,它将从下拉菜单中选择数据,如果要从下拉菜单中选择任何其他项目,则可以通过替换以下级别的代码来获取它:tempEle.getText().contains("Data")
答案 1 :(得分:0)
您可以使用LIST
选择多个元素,然后选择对所选项目的操作。
示例代码如下:
List<WebElement> ListEle= driver.findElements(By.xpath("//ul[@class='options']//li[@class='first popover-options']"));
for (WebElement tempEle : ListEle) {
if(conditions)
{
//statemnets
Break;
}
}
答案 2 :(得分:0)
根据您的问题,根据您共享的HTML,使用class="first popover-options"
标识不包含禁用元素的任何元素,您可以创建 List 使用以下两种解决方案之一来筛选符合条件的元素:
使用 cssSelector :
for (WebElement element:driver.findElements(By.cssSelector("ul.options>li.first.popover-options:not(.disabled)")))
{
//perform any action with the elements from the list
}
使用 xpath :
for (WebElement element:driver.findElements(By.xpath("//ul[@class='options']//li[@class='first popover-options']")))
{
//perform any action with the elements from the list
}