将新条目添加到表时,xpath会不断更改

时间:2013-08-14 03:51:15

标签: xpath selenium selenium-webdriver

我正在尝试针对表条目选择复选框。但是,只要表中有新条目,xpath就会不断变化(tr递增或递减)。附件是源和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>

2 个答案:

答案 0 :(得分:0)

使用以下代码。仅更改特定行的文本(Linux SuSE EL Server 10 x64)。

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

答案 1 :(得分:0)

您拥有的xpath看起来过于具体,每当源html发生更改时,您的xpath很可能会中断。您可以使用以下内容来避免此问题:

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

您可以更改标记:'输入',属性:' @name '和属性值:' SelectedServersIds '。希望这会有所帮助。