2013-08-14 2 views
0

Я пытаюсь установить флажок напротив записи таблицы. Но всякий раз, когда в таблице появляется новая запись, xpath продолжает меняться (tr или увеличивает или уменьшает). Прикрепленный источник и xpath, поскольку я не могу его ввести. Не могли бы вы, пожалуйста, дайте мне знать, как выбрать въезднойxpath продолжает меняться при добавлении новой записи в таблицу

xpath = //*[@id='main']/form/fieldset[2]/table[2]/tbody/tr[2]/td[2]/div/table/tbody/tr[5]/td[2] 

Источник:

<tr> 
<td style="height: 20px"> 
<input type="checkbox" value="65" name="SelectedServersIds"/> 
</td> 
<td title="10.78.59.224/10.78.59.224">10.78.59.224/10.78.59.224</td> 
<td title="N/A">N/A</td> 
<td title="Linux SuSE EL Server 10 x64">Linux SuSE EL Server 10 x64</td> 
<td title="Local DB">Local DB</td> 
</tr> 
<tr> 
<td style="height: 20px"> 
<input type="checkbox" value="73" name="SelectedServersIds"/> 
</td> 
<td title="10.78.59.24/10.78.59.24">10.78.59.24/10.78.59.24</td> 
<td title="N/A">N/A</td> 
<td title="Win 2008 Server x64">Win 2008 Server x64</td> 
<td title="Local DB">Local DB</td> 
</tr> 
+0

Вам нужно http://stackoverflow.com/questions/105613/can-xpath-return-only-nodes-that-have-a-child-of-x написать селектор, у которого есть определенный ребенок, а затем вы можете выбрать элемент . –

+0

Как вы создали этот XPath? – Arran

+0

Привет, Арран, я создал xpath из firepath – Leo

ответ

0

Используйте следующий код. Только измените текст (Linux SuSE EL Server 10 x64) для определенной строки.

//tr[td[text() = 'Linux SuSE EL Server 10 x64']]/descendant::input[@type = 'checkbox'] 
0

XPath у вас есть внешний вид, чтобы быть слишком специфичен, когда исходный HTML изменения есть высокая вероятность того, что ваш XPath сломается. Вы можете использовать следующие многообещающе избежать этой проблемы:

xpath = descendant::input[contains(@name, 'SelectedServersIds')] 

Вы можете изменить тег: 'вход', атрибут: значение '@name' и атрибут: 'SelectedServersIds 'соответственно. Надеюсь это поможет.

Смежные вопросы