首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过内部包含标记的文本通过xpath查找标记

通过内部包含标记的文本通过xpath查找标记
EN

Stack Overflow用户
提问于 2018-08-20 23:43:45
回答 3查看 1.5K关注 0票数 4

我最近遇到了一个问题。

我需要在页面上找到一个div标签,它包含特定的文本。问题是,文本被内部链接标记分为两个部分,因此HTML树看起来如下所示:

代码语言:javascript
复制
**<html>
    <...>
    <div>
        start of div text - part 1
        <a/>
        end of div text - part 2
    </div>
    <...>
</html>**

为了唯一地标识那个div标记,我需要div文本的两个部分。很自然地,我会想出类似这样的XPath:

代码语言:javascript
复制
.//div[contains(text(), 'start of div text') and contains(text(), 'end of div text')]

但是,它不工作,第二部分找不到。

什么是唯一描述这类标签的最佳方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-21 00:23:04

尝试使用下面的XPath通过两个文本节点匹配所需的div

代码语言:javascript
复制
//div[normalize-space(text())="start of div text - part 1" and normalize-space(text()[2])="end of div text - part 2"]
票数 3
EN

Stack Overflow用户

发布于 2018-08-21 00:01:53

这应该是可行的:

代码语言:javascript
复制
//div[contains(text(), 'start of div text') and contains(./a/text(), 'end of div text')]
票数 0
EN

Stack Overflow用户

发布于 2018-08-21 00:02:34

如果你有这样的HTML DOM树:

代码语言:javascript
复制
<div id="container" class="someclass">
    <div>
        start of div text - part 1
        <a/>
        end of div text - part 2
    </div>
 </div>  

为了提取div文本,可以这样编写xpath:

代码语言:javascript
复制
//div[@id='container']/child::div  

附注:基于文本编写Xpath以查找完全相同的文本不是编写xpath的好方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51934274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档