Исключите дочерний элемент родительского элемента с 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>

Я использую Selenium, и я должен вытащить некоторые данные из HTML-кода, который имеет
<div class="description">
. Но ребенок <div id="excluding-class">делает меня проблемой, поэтому я хочу исключить его, позвонив driver.get_element_by_class_nameили driver.get_element_by_xpath

Рабочий код следует экспортировать, но без использования <p>или чего-то еще:

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

    <p>Text1</p>
</div<

Есть ли способ сделать это?

1 ответ

  1. Только XPath 1.0 (версия, наиболее распространенная в selenium webdrivers), нет никакого способа получить родительский элемент, который innerHTML атрибут будет иметь указанный дочерний элемент исключен. Однако, если удаление дочернего элемента из DOM допустимо, возможно следующее:

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