【问题标题】:xpath search for class and text - combine two xpath selectorxpath 搜索类和文本 - 结合两个 xpath 选择器
【发布时间】:2017-03-29 00:36:36
【问题描述】:

我知道有很多关于 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. 搜索“btn”类
  2. 在范围内搜索完全匹配的文本

我试图这样连接,但那不起作用test-example

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

即使它可以工作,也无法通过 span 标签进行选择

谁能帮忙?

【问题讨论】:

  • //div[@class = 'btn-text']/span[text()='Download']?

标签: xpath


【解决方案1】:

您的 XPath 正在寻找直接在 div 内的文本节点,但您正在寻找的文本节点在 span 内。这就是它没有成功的原因。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2014-01-12
    • 2012-03-03
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多