我有这样的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的previous-sibling并使用position()= count(previous-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]
有没有更简单的方法? 问题是表的结构可能会随时间发生变化,但所需的值始终是唯一的
答案 0 :(得分:2)
不使用preceding-sibling
,而是使用following-sibling
:
//td[text()="unique value 2"]/following-sibling::td[1]