我知道有很多关于xpath的简单问题,但是我不知道如何结合两个不太简单的表达式...
我的xml结构:
<div class="some-container">
<div class="btn btn-blue">
<div class="btn-text"><!-- Select by class -->
<span> <!-- Select by text-->
Download
</span>
</div>
</div>
</div>
按班级选择
我知道通过在课后搜索来选择div:
//*/div[contains(concat(' ', @class, ' '), ' btn-text')]
按文字选择
要选择我知道的范围,我只需添加/span
但我想按文字选择。
对于那个用例,我得到了xpath(form here):
//*/text()[normalize-space(.)='Download']/parent::*
那些选择器都正常工作但我想将它们组合起来
我试着像那样连续但不行test-example:
//div[contains(concat(' ', @class, ' '), ' btn-text')]/text()[normalize-space(.)='Download']/parent::*
即使它正常工作,也不会选择span标记
任何可以提供帮助的人?
答案 0 :(得分:1)
您的XPath正在div
内直接查找文本节点,但您要查找的文本节点位于span
内。这就是为什么它没有成功的原因。
要使其工作,只需更改XPath以查找span
而不是文本节点:
//div[contains(concat(' ', @class, ' '), ' btn-text ')]/span[normalize-space(.)='Download']