你能为下面的场景建议一个好的xpath吗?

时间:2016-02-27 11:35:19

标签: java selenium xpath selenium-webdriver

我的HTML代码如下 -

<table id="tblResults_" class="jtable ui-widget-content">
<thead>
<tbody>
<tr class="jtable-data-row jtable-row-even jtable-row-selected" data-record-key="-1" style="">
<td class="jtable-command-column">
<td class="jtable-command-column">
<td class="jtable-command-column">
<td>-1</td>
<td>** new record **</td>
<td/>
<td/>
<td/>
<td/>
<td/>
<td/>
<td/>
<td/>
<td/>
<td class="jtable-command-column">
<button class="jtable-command-button jtable-delete-command-button" title="Delete" style="background-color: transparent;">
</td>
</tr>
</tbody>
</table>

自动化的场景: - 在动态生成的表中,我需要添加一个新的数据行。然后我需要验证添加的数据并将其删除。

目前,我采用以下步骤: - 1)验证添加数据的行。 2)参考行号,单击带有xpath的删除按钮,如下所示。

xpath=//*[@id='tblResults_']/tbody/tr["+rownumber+"/td[15/button

此xpath正在运行。 但根据目前的情况,我需要使td也具有灵活性。

所以我去了下面的xpath: -

driver.findElement(By.xpath("//*[@id='tblResults_']/tbody/tr/*/button[contains(@title,"Delete")]"));

但是当我将上面的代码粘贴到eclipse时,它给了我一些错误,说左边应该是一个变量。

有人可以帮我吗?

要求 - 行号可变。不应考虑列号。可以考虑按钮类或标题。

1 个答案:

答案 0 :(得分:2)

您只需要正确处理报价:

"//*[@id='tblResults_']/tbody/tr/*/button[contains(@title, 'Delete')]"

此外,如果这始终是您需要检查的最后一个tr

"//*[@id='tblResults_']/tbody/tr[last()]//button[contains(@title, 'Delete')]"