我的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 时,它给了我一些错误,指出左侧应该是一个变量。
有人可以帮我吗?
要求 - 行号可变。不应考虑列数。可以考虑按钮类或标题。
最佳答案
您只需要正确处理引号即可:
"//*[@id='tblResults_']/tbody/tr/*/button[contains(@title, 'Delete')]"
此外,如果这始终是您需要检查的最后一个tr
:
"//*[@id='tblResults_']/tbody/tr[last()]//button[contains(@title, 'Delete')]"
关于java - 您能为以下场景建议一个好的 xpath 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35669205/