首页 > 解决方案 > 如何使用 Selenium 和 Python 从多个 span 元素中提取文本内容

问题描述

如何使用 selenium 从多个 DIV 元素中选择文本内容?

在网站上,我打算收集包含 div 和 span 的信息。

我如何单独收集这些信息?

我需要每个块的 panel-body div > span 中的内容

driver.find_element_by_xpath(".//div[@class='panel-body'][1]/span[1]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][1]/span[2]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][1]/span[3]").text

driver.find_element_by_xpath(".//div[@class='panel-body'][2]/span[1]").text
driver.find_element_by_xpath(".//div[@class='panel-body'][2]/span[2]").text

html

        <div class="panel-heading">
            <h3 class="panel-title">Identificação</h3>
        </div>


        <div class="panel-body">
            <span class="spanValorVerde">TEXT</span><br>
            <span style="font-size:small;color:gray">TEXT</span><br>
            <br>
            <span class="spanValorVerde">TEXT</span>
        </div>


    </div>

    <div class="panel panel-success">

    
        <div class="panel-heading">
            <h3 class="panel-title">Situação Atual</h3>
        </div>


        <div class="panel-body">
            <span class="spanValorVerde">TEXT</span> <br>
            <span class="spanValorVerde">TEXT</span>
        </div>


    </div>

标签: python-3.xseleniumxpathcss-selectorswebdriverwait

解决方案


我期望“选择文本”意味着“获取文本”。

第一个for循环:

count = driver.find_elements_by_xpath(".//div[@class='panel-body'][i]")

第二个带有count迭代的for循环:

driver.find_element_by_xpath(".//div[@class='panel-body'][i]/span[j]").text

如果您使用 findElements 进行搜索,".//div[@class='panel-body'][i]"将为您提供当前的总元素,然后添加另一个循环 for.//div[@class='panel-body'][i]/span[j]然后获取文本。希望能帮助到你!


推荐阅读