gpt4 book ai didi

python - Selenium for Python : Get text() of node that is shared with another element, 通过 XPath

转载 作者:行者123 更新时间:2023-11-28 20:34:04 25 4
gpt4 key购买 nike

关于这个 page 我希望用于 Python 的 Selenium 获取“投资目标”的文本内容,不包括 <h3> header 。我想使用 XPath。

节点看起来像这样:

<div class="carousel-content column fund-objective">
<h3 class="carousel-header">INVESTMENT OBJECTIVE</h3>
The Fund seeks to track the performance of an index composed of 25 of the largest Dutch companies listed on NYSE Euronext Amsterdam.
</div>

要检索文本,我正在使用:

string = driver.find_element_by_xpath(xpath).text

如果我将此 XPath 用于顶级节点:

xpath = '//div[@class="carousel-content column fund-objective"]'

它会工作,但它包含 <h3>标题 INVESTMENT OBJECTIVE — 我想排除。


但是,如果我尝试使用 /text()为了解决实际的文本内容,Selenium for Python 似乎不允许我在使用 .text 时捕获它获取属性:

xpath = '//div[@class="carousel-content column fund-objective"]/text()'

请注意,在这个特定页面上似乎有多个节点具有此 XPath,因此我指定正确的节点如下:

xpath = '(//div[@class="carousel-content column fund-objective"]/text())[2]'

我对问题的解释是 .text不允许我检索 XPath 子节点的文本内容 text() .对于不正确的术语,我深表歉意。

最佳答案

/text() 将找到 return text node, which is not an element node .它没有 text 属性。

一种解决方案是定位这两个元素并删除不需要的文本

xpath = '//div[@class="carousel-content column fund-objective"]'
element = driver.find_element_by_xpath(xpath)
all_text = element .text
title_text = element.find_element_by_xpath('./*[@class="carousel-header"]').text

all_text.replace(title_text, '')

关于python - Selenium for Python : Get text() of node that is shared with another element, 通过 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49364186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com