如何获取多个单独的div下的嵌套div总数?

时间:2019-03-18 00:52:29

标签: python selenium xpath css-selectors xpath-1.0

在这里,我如何在class =“ panel-content”的每个div下获取class =“ row ehi-pd”的div总数? 如图所示。

它应该分别为每个class =“ panel-content”部分提供输出,而不是将所有部分都组合在一起。

例如:

第一个“面板内容”:6

第二个“面板内容”:5

第3个“面板内容”:3

picture

3 个答案:

答案 0 :(得分:0)

使用find_elements_by_xpath并计算长度。

totalcount= len(driver.find_elements_by_xpath("//div[@class='panel-content']/div[@class='row ehi-pd']"))
print(totalcount)

答案 1 :(得分:0)

适用于@kajal解决方案,但只想使用CSS添加其他选项。

使用CSS:

panels = driver.find_elements_by_css_selector('.panel-content')
for panelNum in range(len(panels)):
    #get the divs count
    panelDivs = len(panels[panelNum].find_elements_by_css_selector("div.row.ehi-pd"))
    print str(panelNum+1) + " panel-content:" + str(panelDivs)

答案 2 :(得分:0)

要在带有的祖先<div>标记中以 row ehi-pd 形式打印具有 class属性的嵌套<div>标记的总数> class属性作为面板内容,您可以使用以下Locator Strategies之一:

  • css_selector

    print(len(driver.find_elements_by_css_selector("div.panel-content div.row.ehi-pd")))
    
  • xpath

    print(len(driver.find_elements_by_xpath("//div[@class='panel-content']//div[@class='row ehi-pd']")))