使用 Selenium 或 xPath Python 排除父元素的子元素



我堆积在代码上,尝试了很多方法,但还没有找到正确的答案。这是 HTML 代码:

<div class="description">
    <p>Text1</p>
    <p>Text1</p>
    <div class="excluding-class">
        <ul>
            <li>list1</li>
            <li>list2</li>
        </ul>
    </div>
</div>

我正在使用硒,我必须从具有 <div class="description">的HTML代码中提取一些数据。但是孩子<div id="excluding-class">让我成为问题,所以我想通过打电话driver.get_element_by_class_namedriver.get_element_by_xpath来排除它

工作代码应该导出,但不要使用<p>或其他东西:

<div class="description">
    <p>Text1</p>
    <p>Text1</p>
</div<

有什么办法可以做到这一点吗?

只有 XPath 1.0(Selenium webdriver 中最常见的版本),无法获取 innerHTML 属性将排除指定子元素的父元素。但是,如果从 DOM 中删除子元素对您来说没问题,则可以执行以下操作:

driver.execute_script("document.getElementsByClassName('excluded-class').remove()")
driver.get_element_by_class_name("description").get_attribute("innerHTML")

最新更新