使用量角器和角度带模式测试登录对话框时发生超时错误

timeout-error when testing login-dialog using protractor and angular-strap modal

本文关键字:对话框 登录 错误 超时 测试 模式 量角器      更新时间:2023-09-26

我有一个使用角带模式的登录对话框,该对话框由调用

scope.authModal = $modal({
                template: '/components/login/login.html',
                show: false,
                scope: scope,
                backdrop: 'static'
            });

(该代码位于登录指令的链接函数中。)

现在,我的量角器代码如下:

it('should perform login properly', function () {
    browser.manage().deleteAllCookies();
    element(by.model('login.username')).sendKeys('xy123');
    element(by.model('login.password')).sendKeys('abz89');
    element(by.binding("guiText.loginButton")).click();
    browser.waitForAngular();
    expect(element(by.id('login.username')).isPresent()).to.eventually.equal(false);
});

在上面的另一个测试中,当登录对话框可见时,element(by.id('login.username')).isPresent()已被证明为true。

问题是,我通过那个测试得到了Error: timeout of 10000ms exceeded。在浏览器中,我可以看到凭据输入正确,并且正在单击按钮。登录模式消失,然后什么也没发生,浏览器在等待10秒后最终运行到超时异常。

我遇到了同样的问题,我在下面解决了这个问题。

在你的助手文件中编写这个函数,并调用它来点击代码中的登录按钮。尝试通过Id访问按钮,然后在该功能中传递Id,如果不是Id,则根据您的需要更新功能

var clickAndWait= function (btnId) {
    var returnVal = false;
    browser.wait(function () {
        if (!returnVal) {
            element(by.id(btnId)).click().then(function () {
                returnVal = true;
            });
        }
        return returnVal;
    }, 30000);
};