在 Selenium Python 中查找文本节点 #text

时间:2021-05-04 18:07:59

标签: python html selenium

我有以下 HTML

<div class="detailSection">
            <span>Authorized Person(s) Detail</span>
            <span>
                     <b>Name &amp; Address</b>
            </span>
            <br>
            <br>
            <span>Title&nbsp;MGR</span>
            <br>
            <br>
            "
            EYN, KHASHY    "   
            <span>

               <div>
               100 Wall Street<br>
               NEW YORK, NY 10005<br>
               </div>
    
            </span>
            <br>
            </div>

我想提取 HTML 的 EYN、KHASHY 部分。我的 Chrome 开发人员工具告诉我这是一个 #text 节点(?),我认为这就是为什么它不适用于我当前的代码。虽然我根本不熟悉 #text 节点,但它似乎与 HTML 不同。

目前我的代码选择 <div> 的所有子元素,它是 #text 的父元素。如下:

 persons = driver.find_element_by_xpath('//*[@id="maincontent"]/div[2]/div[6]')
        all_children = persons.find_elements_by_xpath(".//*")
        for child in all_children:
            li_person.append(child.text)
            print(child.text)

这给了我除 EYN、KHASHY 之外的所有文本。可能是因为所有其他文本都是某个元素的一部分,因为当我将鼠标悬停在 Chrome 开发工具上时会告诉我。 #text "EYN, KHASHY" 返回空白。

如何选择该节点并提取此信息?

1 个答案:

答案 0 :(得分:1)

如果“persons”是父<div>块,那么您想要的是persons.text。该文本不在子标签中,而是该标签的文本