2011-06-09 60 views
1

我想用測試我的網絡應用程序。對話硒測試問題

它的工作原理...但是...

對於確認對話框我已經改寫

function confirm(text,cbk) { 
           $.prompt(text,{ 
            buttons:{Ok:true, Cancel:false}, 
            opacity: 0.3, 
            overlayspeed: 'fast', 
            promptspeed: 'slow', 
            callback: function(v,m){ 
             if(v){ 
              cbk.call(); 
             } 
             else{ 

             } 
            } 
           }); 
          } 

我使用jQuery的方法和插件即興爲圖形確認框。

我用Selenium IDE記錄了我的測試。 我開始測試後,測試失敗。 測試是「點擊一個鏈接,應該出現對話框(即興風格),而且我想按鍵‘OK’後

這是測試的代碼

<!-- login page --> 
<tr> 
    <td>open</td> 
    <td>/demoit/action/Home</td> 
    <td></td> 
</tr> 
<!-- inser the username and the password --> 
<tr> 
    <td>type</td> 
    <td>user_name</td> 
    <td>tommaso</td> 
</tr> 
<tr> 
    <td>type</td> 
    <td>pass_word</td> 
    <td>pwdtommaso</td> 
</tr> 
<!-- click in the login image that call a script for login --> 
<tr> 
    <td>clickAndWait</td> 
    <td>css=body &gt; div:nth(2) &gt; p &gt; img</td> 
    <td></td> 
</tr> 
<tr> 
    <td>chooseCancelOnNextConfirmation</td> 
    <td></td> 
    <td></td> 
</tr> 
<!-- click on exit link --> 
<tr> 
    <td>click</td> 
    <td>css=#mycontentheader &gt; table &gt; tbody &gt; tr:nth(1) &gt; td:nth(1) &gt; table.entrata &gt; tbody &gt; tr &gt; td &gt; a &gt; img</td> 
    <td></td> 
</tr> 
<tr> 
    <td>assertConfirmation</td> 
    <td>Do you want to exit?</td> 
    <td></td> 
</tr> 
<tr> 
    <td>click</td> 
    <td>jqi_state0_buttonOk</td> 
    <td></td> 
</tr> 

這是由Selenium IDE生產的。

什麼問題?

請幫助我,

問候,

托馬索

+0

請向我們展示相關的硒測試代碼。 – cweiske 2011-06-09 08:49:53

回答

2

這很可能是一個時間問題。您需要讓硒等待對話框出現在assertConfirmation之前。此外,我懷疑這個調​​用只適用於真正的JS彈出窗口,而不是真正模態的jQuery風格的「假」彈出窗口,所以你應該使用正常的斷言。

+0

有很多「等待......」的方法......你建議我用什麼方法?謝謝 – 2011-06-09 09:36:18

+0

WaitForElementPresent通常是很好的一個(對不起,我比HTML更熟悉Java綁定) – artbristol 2011-06-09 09:39:09

+0

只是懷疑,當你尋找一個元素並且它不存在於頁面上時,硒不會自動重試一次在內部執行(非常短)WaitForElementPresent之後?這將是一個很好的行爲,如果是這種情況,你可能會增加超時 – Benja 2012-04-12 20:00:14