首页 > 解决方案 > 在 Selenium Python 中查找文本节点#text

问题描述

我有以下 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" 返回空白。

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

标签: pythonhtmlselenium

解决方案


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


推荐阅读