我有这样的 HTML 结构:
<table>
<tr>
<td>some value 1</td>
<td>unique value 1</td>
<td>needed value 1</td>
<td>some value 1</td>
</tr>
<tr>
<td>some value 2</td>
<td>unique value 2</td>
<td>needed value 2</td>
<td>some value 2</td>
</tr>
<tr>
<td>some value 3</td>
<td>unique value 3</td>
<td>needed value 3</td>
<td>some value 3</td>
</tr>
</table>
我使用 Selenium,需要通过使用 XPath 搜索这个唯一值来指向唯一值旁边的 td。
我找到了解决方案:找到具有所需唯一值的 tr,然后计算 td 的前兄弟并使用 position()=count(preceding-sibling)+2
//tr[./td[text()='Unique value 2']]/td[position()=count(//tr[./td[text()='Unique value 2']]/td[text()='Unique value 2']//preceding-sibling::td)+2]
有没有更简单的方法?问题是表的结构可能会随时间改变,但所需的值总是在唯一的旁边