Python / Selenium,在 DIV 中定位所有文本,包括不同数量的跨度

问题描述 投票:0回答:0

我正在使用 Python 和 Selenium,使用 xpath 类选择器我目前能够找到包含我希望记录的文本的特定 div。

问题是这个 div 可能没有任何信息(我目前处理的信息)或包含 1-3 个我无法访问的文本。我想做的是拉出所有文本,包括跨度内的文本。

示例 HTML:

<div class="desktop-product-list-item__PotencyInfo-sc-8wto4u-14 hdncuE">
    <span class="grey-caps-text-sc-91lz0n-0 huWIpn">TAC</span>
    &nbsp;28.3%&nbsp;&nbsp;|&nbsp;&nbsp;
    <span class="grey-caps-text-sc-91lz0n-0 huWIpn">THC:</span>
    &nbsp;26.2%
</div>

当前的 XPATH:

potencyList = response1.xpath('//div[contains(@class, "__PotencyInfo-sc-")]/text()').getall()

使用我当前的 xpath,我只提取数字“26.2”和“28.3”,因为“TAC:”文本和“THC:”文本在跨度内。我的目标是按顺序提取所有文本,然后根据需要使用正则表达式进一步操作。

我相信我可以直接瞄准跨度,但我不确定当我考虑到它们的不同数量时我会怎么做。

还应该注意我正在使用 Chromedriver.

任何见解将不胜感激。

python selenium-webdriver
© www.soinside.com 2019 - 2024. All rights reserved.