2017-02-25 99 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