通过xpath根据列和行选择单元格

时间:2018-11-15 15:36:01

标签: xpath

我有下一张桌子的结构:

<table>
    <thead>
        <tr>
            <th>User Role</th>
            <th>Inactive</th>
            <th>Admin Area</th>
            <th>Need Confirm</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Admin</td>
            <td>False</td>
            <td>True</td>
            <td>False</td>
        </tr>
        <tr>
            <td>Member</td>
            <td>False</td>
            <td>False</td>
            <td>True</td>
        </tr>
    </tbody>
</table>

如何从第一列中根据列名和行选择一个单元格(例如,为Admin Area选择Member单元格值)?

1 个答案:

答案 0 :(得分:1)

如果您可以保证User Role是第一列,则可以使用以下内容:

//td[count(//th[text()="Admin Area"]/preceding-sibling::*)+1][../td[1]="Member"]

说明:

  • count(//th[text()="Admin Area"]/preceding-sibling::*)+1为您提供表标题中“管理区域”的索引,在本例中为3
  • //td[3]选择第三列中的所有td单元格
  • //[../td[1]="Member"]通过仅选择第一列中包含td的同级"Member"单元格来进一步证明这一点。