Selenium - 获取所有孩子的 div,但不是孙子

Mil*_*ano 5 html python selenium parsing selenium-webdriver

我正在尝试解析一个html文件。这个html 中有许多嵌套的 div 。我想获得所有 div,但不是孙子等。

这是一个模式:

<div class='main_div'>
    <div class='child_1'>
        <div class='grandchild_1'></div>
    </div>
    <div class='child_2'>
        ...
        ...
</div>
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找的命令将返回 2 个元素 - 类是“child_1”和“child_2”的 div。

是否可以?

我尝试使用,main_div.find_elements_by_tag_name('div')但它返回了 div 中的所有嵌套 div。

ale*_*cxe 7

这是一种查找div类名为“main_div”的 div的直接子级的方法:

driver.find_elements_by_xpath('//div[@class="main_div"]/div')
Run Code Online (Sandbox Code Playgroud)

这里的关键是使用单斜线,这将使“main_div”内的搜索非递归地只找到直接div子项。

或者,使用CSS 选择器

driver.find_elements_by_css_selector("div.main_div > div")
Run Code Online (Sandbox Code Playgroud)