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

文本节点的XPath,其祖先具有包含特定文本字符串的后代

东门彬
2023-03-14

我试图找到DOM中紧跟在前一个文本节点之后的文本节点的xpath--但它们不是兄弟,它们的xpath关系可能会改变。

我使用祖先和后代是因为uniqueID和text以及uniqueID和$amount之间的元素数量发生了变化。

我的最佳猜测(这不起作用)://text()[contains(.,“$”)][祖先::div[1]//*[text()[contains(.,“uniqueText”)]][祖先::div[@id=“uniqueID”]]

我认为'div[1]'返回的是顶部的div,而不是uniqueText上面最接近的div

<div id="unique">
    <div>
        <h4></h4>
            <div>
                <div>
                    <div>
                        <span>
                            <span>
                                <span>uniqueText
                                </span>
                            </span>
                        </span>
                        <div>
                            <div>
                                <p>$xxx</p>
                            </div>
                        </div>

共有2个答案

岳佐
2023-03-14
相关问题
田冥夜
2023-03-14

您的问题不完全清楚(html示例无效),但如果我正确理解了您的意思,并且您希望从文本开始并获得$amount,其中它们都位于最接近的公共

祖先下,并且$amount包含在该公共祖先下的单个

标记中,那么在实际html上尝试这样做

div[@id="unique"]//span[contains(./text()[1],"uniqueText")]/ancestor::div[1]/div[contains(.//p/text(),"$")]//p/text()

看看是否管用。

 类似资料:
  • 我对Xpath有问题。我试图查找div第一次迭代的所有文本节点,但排除其中包含关键字的节点。 一个简单的例子: 我想从第一个div“blabla”中获取所有文本,但排除所有包含“bananas”一词的段落。在这种情况下,我只想要“我也喜欢苹果”。段落数和单词“bananas”的位置是随机的。 以下是我尝试过的: 我不知道为什么这样不行。如果有人有想法,我们将不胜感激!

  • 无法完成这项理论上相对简单的任务: 查找节点文档,其中Field具有包含特定文本的属性Name,并且子节点Option具有值。 XML: 所以我希望能够将模板应用到文档中,比如 但那是行不通的。 只需指定:文档必须在选项中包含文本,该选项是包含特定文本的字段的子节点。 在xml中,使用输入值: 1:Børn Fridslip= 2: Børn-Fritidsklub= 3:Børn Fritid=

  • 我正在编写一些Selenium测试,我需要能够找到我已经找到的的祖先。 这是我正在尝试的,但没有任何结果 下面的图像显示了我选择的div,突出显示为深蓝色,并且显示了我想用箭头指向它的div。  

  • 我有一个XML文档,它包含一个非常复杂(对我来说)的结构,没有换行符。它有许多具有类似结构的元素: 我需要得到节点值的文本,这是节点成员的孩子也有孩子的名字与特定的文本(在这种情况下virtual_size)。也有可能存在几个类似的节点。我可以用[1]etc吗? 这让我知道了节点的名称,但是如何达到“值”节点呢?

  • 在顶级“foo”的范围内找到具有类“bar”的div,其祖先没有类“foo”。例如,

  • 我正在使用selenium在html页面上执行测试。我只能使用xpath来定位元素。我试图创建一个xpath,它允许我定位所有包含文本的div,这样我就可以用findElements保留这些WebElement的引用,不管它是什么,只要它不是空的。所以我有了这个xpath: //div[5]/div/div[2]