2013-02-18 168 views
1

当我使用自动运行来运行我的硒测试时出现错误[error] Element //div[@id='newslist_config']//button[@type='button'] not found,但是如果我单击命令并选择Execute this command测试通过。你能告诉我为什么硒不能找到那个元素吗?错误元素// .....未找到

我硒测试

<tr> 
    <td>click</td> 
    <td>//div[@id='newslist_config']//button[@type='button']</td> 
    <td></td> 
</tr> 

的HTML是

<div id="newslist_config" class="section-box span8"> 
<div class="accordion-group"> 
<div class="accordion-heading"> 
<h3>News-List Configuration</h3> 
<a class="btn btn-danger close_newslist_config" data-dismiss="modal" href="#">remove widget</a> 
<button class="btn btn-info collapse-btn" type="button" href="#collapse_newslist" data-parent="#newslist_config" data-toggle="collapse"> 
<span class="edit-btn-txt"> 
<span class="collapse-btn-txt"> 
</button> 
</div> 
<div id="collapse_newslist" class="collapse collapse-box"> 
</div> 
</div> 
+0

'// div [@ id ='accordion-heading']/descendant :: input [@ type ='button']''? – Arran 2013-02-19 09:39:34

回答

0

你可以改为尝试的XPath://div[@id='accordion-heading']/button[@type='button'] 这是一个更直接的路径;如果它不起作用,我会建议尝试单击其中一个包含跨度,因为有时,由于样式,单击元素跨度可获得更一致的结果。在KendoUI中使用WebDriver时,我有时会遇到这个问题。

+0

我更改为使用// div [@ id ='newslist_config']/div [@ class ='accordion-group']/div [@ class ='accordion-heading']/button [@ type ='button']但是当我用“玩当前测试用例”运行时,它仍然不起作用。但是如果我在右键单击命令并选择“执行此命令时运行。 – 2013-02-19 08:08:41

+1

点击命令后用暂停999修复它:) – 2013-02-19 10:07:07

+0

如果它只在你直接执行命令(或者暂停),你很可能在xpath之前或之后做了错误的事情。可能值得看看代码的周围区域,因为睡眠不好! – Nashibukasan 2013-02-19 20:40:20

0

方法:

1.从给定的DOM中获取CSS选择器。

CSS =#newslist_config .collapse-BTN

2.Perform点击

driver.findElement(By.cssSelector( “#newslist_config .collapse-BTN”))点击();