У меня есть эта отметка:
<tr>
<td>
<span class="text">Bedford, Franklin Court</span>
</td>
</tr>
<tr>
<td>
<span> First Row</span>
</td>
</tr>
<tr>
<td>
<span class="text">Jo Ghartey_Officer4)</span>
</td>
</tr>
<tr>
<td>
<span class="text">Jo Ghartey_Oficer4)</span>
</td>
</tr>
Я пытаюсь найти xpath из FIRST span, который содержит Jo Ghartey. Я пробовал использовать следующую сестру после пролета, содержащего "Бедфорд", однако я не всегда могу гарантировать, что <tr> <td> <span>
всегда будет вторым <tr>
после Bedoford <tr>
. Поэтому, когда я пытаюсь использовать xpath=//span[contains(,.'Bedford')]/../../following-sibling::tr[2]/td/span
этот элемент не обнаруживает проблемы. Но если есть другой <tr> <td> <span>
между Бедфордом и Джо Гарти, тогда мне придется изменить индекс. Я знаю, что я всегда буду искать первый пролет, содержащий Джо Гарти. Я надеюсь в этом есть смысл...
Если вы используете (//span[contains(., 'Jo Ghartey')])[1]
вы выбираете первый элемент span
, строковые значения которого содержат строку Jo Ghartey
.
following-sibling
так что поиск первого потомка<span>
с атрибутомclass
= "text" может быть ближе к тому, что ищет ОП. +1 тем не менее.