2013-02-18 164 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」))點擊();