2016-02-27 35 views
1

我的HTML代码如下 -你可以为下面的场景建议一个好的xpath吗?

<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")]")); 

但是当我粘贴上面的代码偏食它给我一些错误,说左边应该是一个变量。

任何人都可以帮助我吗?

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

+0

我尝试下面的XPath也。这在ide工程,但在eclipse中显示错误 - 我想知道为什么会发生这种情况.. Xpath: -/* [@ id ='tblResults _']/tbody/tr/td [contains(@class,“jtable-command-列 “)] /按钮 – Sapna

回答

2

你只需要妥善处理报价:

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

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

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

由于Alecxe,在下面的代码为我工作:driver.findElement(By.xpath(” // * [@ id中= 'tblResults _']/tbody的/ TR [” +行 \t \t \t \t +“] // button [@ title ='Delete']”))。click(); – Sapna

相关问题