当前位置: 首页 > 知识库问答 >
问题:

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

齐昊
2023-03-14

我知道关于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,我只需添加span,然后我想通过文本进行选择。对于该用例,我得到了xpath(这里的表单):

//*/text()[normalize-space(.)='Download']/parent::*

这些选择器都正常工作,但我想将它们结合起来

  1. 搜索类别“btn”

我试图这样想,但那不起作用测试示例:

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

即使有效,也没有按span标记进行选择

有谁能帮忙吗?

共有1个答案

公羊向荣
2023-03-14

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

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

//div[contains(concat(' ', @class, ' '), ' btn-text ')]/span[normalize-space(.)='Download']
 类似资料:
  • 问题内容: 我只想自行选择一个名为.date的类 由于某种原因,我无法使它正常工作。如果有人知道我的代码出了什么问题,将不胜感激。 问题答案: 我想写这个问题的规范答案,因为上面的答案有问题。 我们的问题 该 CSS 选择器: 将选择具有 foo 类的任何元素。 您如何在XPath中做到这一点? 尽管XPath比CSS强大,但是 XPath没有CSS类选择器的本机等效项 。但是,有一个解决方案。

  • 问题内容: 以下HTML的Selenium xpath选择器将是什么: 我需要让Selenium IDE根据元素文本在列表中找到第二个项目。我以为可以解决问题,但显然没有。 问题答案: 我想这就是你要找的 而且更好

  • 对于以下 HTML,硒 xpath 选择器是什么: 我需要让Selenium IDE根据元素文本定位列表中的第二项。我认为可以做到,但显然不行。

  • 问题内容: 我在selenium测试中有以下xpath语句: 它达到了我想要的,但是我的测试在IE6中非常缓慢。有人知道我将如何做与CSS选择器相同的选择器吗?我想我了解如何执行上述操作,但text()=“ IPODate”部分除外。 以下是我要从中选择的表格示例: ....很多很多行 …还有很多行… 在此示例中,只有一行具有IPODate单元。 问题答案: CSS定位器用于其中包含文本IPODa

  • 问题内容: 我有一个xform文档 我想使用xpath和jdom从xform中选择数据元素 似乎工作正常,并选择title元素,但 不选择模型元素。我想这与名称空间有关。 问题答案: 一些东西。您 确实 应该使用JDOM 2.0.x …(最新版本2.0.5)。2.0.x版本中的XPath API远远优于JDOM 1.x中的XPath API:请参阅https://github.com/hunter