【问题标题】:XPath how to select specific div inside of table rowXPath如何选择表格行内的特定div
【发布时间】:2019-03-07 09:48:53
【问题描述】:

我正在尝试根据位于另一个 <td></td> 标记中的文本选择位于 <td></td> 标记中的特定 div。可能html代码会更容易描述:

<tr>
    <td> 
        <div class="name">test1</div>
    </td>
    <td> 
        <div class="created">Tom</div>
    </td>
    <td> 
        <div class="custom">Disabled</div>
    </td>
    <td> 
        <div class="custom">Failed</div>
    </td>
</tr>
<tr>
    <td> 
        <div class="name">test2</div>
    </td>
    <td> 
        <div class="created">Tom</div>
    </td>
    <td> 
        <div class="custom">Disabled</div>
    </td>
    <td> 
        <div class="custom">Failed</div>
    </td>
</tr>
<tr>
    <td> 
        <div class="name">test3</div>
    </td>
    <td> 
        <div class="created">Kate</div>
    </td>
    <td> 
        <div class="custom">Disabled</div>
    </td>
    <td> 
        <div class="custom">Failed</div>
    </td>
</tr>

所以在这个例子中,我想通过 Xpath 选择的是第二行和带有 Failed 文本的 div。但我不能使用索引,因为大小和位置并不总是恒定的,并且会随时间变化。因此,在我的例子中,唯一的字段是名称为 test2 的 div。

我正在考虑使用following-sibling。也许是这样的: \\tr\div[@class='name' and text()='test1'] 但接下来呢? div 不是兄弟,但 td 是。

有什么想法吗?

【问题讨论】:

    标签: html xpath


    【解决方案1】:

    我可以通过以下方式解决它:

    //td/div[text()='test1']/ancestor::tr/td/div[@class='custom' and text()='Failed']
    

    【讨论】:

    • @NaveenChandar 需要再等一天
    【解决方案2】:

    如果您尝试根据测试名称获取测试状态,请使用以下 xpath。

    (//div[normalize-space(.)='test2' and @class='name']/ancestor::tr//div)[last()]
    

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      相关资源
      最近更新 更多