1

我想使用selenium来测试我的网络应用程序。

它有效......但是......

对于确认对话框,我重写了方法

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和插件Impromptu作为确认框的图形。

我用 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制作的。

问题是什么?

请帮我,

问候,

托马索

4

1 回答 1

2

这很可能是一个时间问题。您需要让 selenium 等待对话框出现在assertConfirmation. 此外,我怀疑调用实际上只适用于真正的 JS 弹出窗口,而不是 jQuery 样式的“假”弹出窗口,它们不是真正的模态,所以你应该使用普通的断言。

于 2011-06-09T09:19:38.327 回答