我的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时,它给了我一些错误,说左边应该是一个变量。
有人可以帮我吗?
要求 - 行号可变。不应考虑列号。可以考虑按钮类或标题。
答案 0 :(得分:2)
您只需要正确处理报价:
"//*[@id='tblResults_']/tbody/tr/*/button[contains(@title, 'Delete')]"
此外,如果这始终是您需要检查的最后一个tr
:
"//*[@id='tblResults_']/tbody/tr[last()]//button[contains(@title, 'Delete')]"