Вам не нужно выполнять какую-либо итерацию по таблице, вам просто нужно написать свой XPath таким образом, чтобы он указывал на радиокнопку только в строке с конкретным значением в одном из столбцов.
Допустим, ваш HTML выглядит следующим образом:
<table>
<tbody>
<tr>
<th />
<th>Letter</th>
<th>Colour</th>
<th>Number</th>
<th>Animal</th>
</tr>
<tr>
<td><input type="radio" /></td>
<td>A</td>
<td>Red</td>
<td>111</td>
<td>Dog</td>
</tr>
<tr>
<td><input type="radio" /></td>
<td>B</td>
<td>Blue</td>
<td>222</td>
<td>Cat</td>
</tr>
<tr>
<td><input type="radio" /></td>
<td>C</td>
<td>Green</td>
<td>333</td>
<td>Rabbit</td>
</tr>
</tbody>
</table>
В этом случае XPath может выглядеть следующим образом:
//tr[td[3]='Blue']/td[1]/input
Это означает: найдите мне элемент строки, который имеет«Синий» в третьем столбце, и как только вы это сделаете, верните элемент ввода в первый столбец этой строки.
Существуют и другие способы, которыми вы можете достичь этого, Оси XPath могут бытьочень полезно:
//tr/td[3][.='Blue']/preceding-sibling::td/input
Это означает: найдите мне ячейку третьего столбца со значением 'Blue' и, как только вы это сделаете, вернете вход, вложенный в любую предыдущую ячейку.
Первыйодин имеет больше смысла, второй - просто показать, что обычно существует больше способов добраться до уникальной идентификации элемента.