Как получить общее количество вложенных элементов div для нескольких отдельных элементов div? - PullRequest
0 голосов
/ 18 марта 2019

Здесь, как я могу получить общее количество divs class = "row ehi-pd", под каждым divs class = "panel-content"? Как показано на рисунке.

он должен выдавать выходные данные для каждого раздела class = "panel-content" отдельно, не объединяя их все.

например:

для 1-го "содержания панели": 6

для 2-го "панели контента": 5

для 3-го "содержания панели": 3

picture

Ответы [ 3 ]

0 голосов
/ 18 марта 2019

Хорошо с решением @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)
0 голосов
/ 18 марта 2019

Для печати общего количества вложенных <div> тегов с атрибутом класса в виде строки ehi-pd внутри тега предка <div> с атрибутом класса в качестве panel-content вы можете использовать любой из следующих 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']")))
    
0 голосов
/ 18 марта 2019

используйте find_elements_by_xpath и считайте длину.

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