私はこのような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]
もっと簡単な方法はありますか?問題は、テーブルの構造が時間とともに変化する可能性があることですが、必要な値は常に一意の隣になります