2017-02-25 115 views
-1

我必须计算存在于div中的li元素的数量。 下面是网页的HTML部分: enter image description here计算硒中“li”元素的数量

我已经写了下面的代码行数地砖:

public void configButtonCount() 
{ 
    WebElement button= driver.findElement(By.className(".config-category")); 
    List<WebElement> buttonCount = button.findElements(By.xpath("//li")); 
    System.out.println("List size is: " +buttonCount.size()); 
} 

谁能告诉我,为什么它被显示为“无法找到元素:..config-category“? 另外,正确的代码行?

+0

还为该div另一个类 - NG-范围。既可以使用这两个类,也可以使用css等。另外,// li xpath需要在它前面有一个点,否则它将返回所有的li而不是div中的那些... – Grasshopper

回答

1

错误是因为在班级名称.config-category中有句点(。)。类名在HTML中不包含句点。我认为你用CSS选择器混淆了这个问题,在这个选择器中,你用一个句号来表示类名。

您可以使用CSS选择器编写一个定位器来查找所有您要查找的LI。您正在寻找包含类名称config-categoryDIV,您可以将其表示为div.config-category。接下来你想要的那个DIV的后代。后代用空格表示,然后添加li,如div.config-category li。下面的代码应该可以工作。

public void configButtonCount() 
{ 
    List<WebElement> buttons = driver.findElements(By.cssSelector("div.config-category li")); 
    System.out.println("List size is: " + buttons.size()); 
} 

CSS选择器是非常强大的定位器,并得到广泛的支持,并有很好的表现,特别是与XPath定位。我建议你花一些时间来阅读它们并学习基础知识。你会发现它们非常有用。这里只是一对夫妇的资源,让你开始:

W3C CSS selectors reference

CSS selectors tips & tricks