根据表亲值选择元素

时间:2018-10-10 12:19:25

标签: xpath

让我们说我有这个html(忽略标签名称):

<div>
    <card>
        <h2>1</h2>
    </card>
    <footer>
        <p>text 1</p>
    </footer>
</div>

<div>
     <card>
        <h2>2</h2>
    </card>
    <footer>
        <p>text 2</p>
    </footer>
</div>

<div>
    <card>
        <h2>3</h2>
    </card>
    <footer>
       <p>text 2</p>
    </footer>
</div>

我想选择一个h2值为2的p标签(我将选择带有文本2的p)

如果我使用此表达式//h2[text()="2"]/../following::footer/p,我将获得2个p标签。

如何仅选择表亲h2值为2的p标签?

编辑:Robbie Averill的答案是第一个有效的方法,但是您应该检查其他答案,它们也非常好。

3 个答案:

答案 0 :(得分:1)

您可以从匹配的h2导航到包含所需元素的div,然后从此处定位footer/p元素:

//h2[text()="2"]/../../footer/p

答案 1 :(得分:1)

尝试在XPath下面使用以选择所需的元素:

//card[h2="2"]/following-sibling::footer/p

答案 2 :(得分:1)

此XPath,

//div[card/h2="2"]/footer/p

将选择footer/p个元素的card/h2个堂兄弟,其字符串值为2