前一个td包含特定文本时如何选择td值

时间:2019-03-19 13:43:14

标签: html xpath

我只是想知道如何选择字符串=“ Last Minute”,但是仅当此<td>中的前<tr>包含特定文本(在这种情况下为“要约”)时才选择。有没有人可以帮助我?

<tr class="row m-0 mb-25">
    <td class="color_b1 font_10 d-inline-block col-12 text-uppercase">Offer</td>
    <td class="d-inline-block col-12">Last Minute</td>
</tr>

2 个答案:

答案 0 :(得分:2)

编辑

正如评论中指出的那样,我的原始建议并未考虑元素的位置。当您与兄弟姐妹打交道时,Amrendra Kumar提供的解决方案是正确的。也可以通过下面的XPath完成。

//td[text()='Offer']/following-sibling::td[1]

原始答案

仅检查以确保父节点具有文​​本为Offer的节点,可能对另一个节点有用

//td[text()="Last Minute" and ../td[text()='Offer']]

这会发现值td的{​​{1}}向上移动到父Last Minute,然后检查文本为tr的同级td 使用您提供的示例可以正常工作。我建议将您的html复制到Xpath测试器中,并进行测试以确保始终实现所需的结果,但是鉴于所提供的信息,这应该可以解决您的问题。

答案 1 :(得分:1)

You can check with position and its text() like this to achieve desire output:

//td[text()="Last Minute" and preceding-sibling::*[1][self::td[.='Offer']]]