xpath搜索类和文本 - 组合两个xpath选择器

时间:2016-11-15 07:50:09

标签: xpath

我知道有很多关于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::*

那些选择器都正常工作但我想将它们组合起来

  1. 搜索课程&#34; btn&#34;
  2. 搜索范围内与
  3. 完全匹配的文字

    我试着像那样连续但不行test-example

    //div[contains(concat(' ', @class, ' '), ' btn-text')]/text()[normalize-space(.)='Download']/parent::*
    

    即使它正常工作,也不会选择span标记

    任何可以提供帮助的人?

1 个答案:

答案 0 :(得分:1)

您的XPath正在div内直接查找文本节点,但您要查找的文本节点位于span内。这就是为什么它没有成功的原因。

要使其工作,只需更改XPath以查找span而不是文本节点:

//div[contains(concat(' ', @class, ' '), ' btn-text ')]/span[normalize-space(.)='Download']