量角器失败超时等待

时间:2018-02-19 05:29:48

标签: protractor

目前我在这个e2e自动化工具(量角器)上遇到了问题我试图设置一个wait元素选项,但我仍然遇到以下错误。

  

失败:等待异步Angular任务在12秒后完成超时。这可能是因为当前页面不是Angular应用程序。有关详细信息,请参阅常见问题解答:https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular       在等待带定位符的元素时 - Locator:By(css selector,#company-code)。       以下任务尚未完成:         - $ timeout:function u(){return e.isActivatePage?void t.cancel(s):( s = t(u,o),void i.poll(r).then(function(t){d = t ,E $广播(" NotI位计数更新的",d)}))}

感谢您对解决此问题的意见。我尝试了一个负面的场景,如下所示,谢谢

it('After invalid login it should show an error toast', function () {
    browser.get('https:XXXX.com');
    var EC = protractor.ExpectedConditions;
    browser.wait(EC.visibilityOf($('#company-code')))
        .then(function () {
            browser.waitForAngularEnabled(false);
            browser.driver.findElement(by.id('company-code')).sendKeys('ccXXX');
            browser.driver.findElement(by.id('username')).sendKeys('email@domain.com');
            browser.driver.findElement(by.id('password')).sendKeys('wrong password');
            browser.driver.findElement(by.id('signin')).click()

                .then(function () {

                    var EC = protractor.ExpectedConditions;
                    browser.wait(EC.visibilityOf($('.alert-warning')))
                        .then(function () {

                            var myElement = element(by.css('.alert-warning'));
                            expect(myElement.isDisplayed()).toBeTruthy();

                        });
                });
        });
});

});

2 个答案:

答案 0 :(得分:1)

目前,browser.waitForAngularEnabled(false);仅在EC.visibilityOf($('#company-code')之后执行。但是应该在测试开始之前设置它。

您应该在browser.waitForAngularEnabled(false);块中的protractor.conf.js文件中写下onPrepare() { }

如果您想在一次测试中尝试,请browser.waitForAngularEnabled(false);作为it()阻止的第一行。或者您可以在beforeAll()中进行设置。

同样,我更喜欢将其保留在onPrepare() { }

中的配置文件中

答案 1 :(得分:-1)

您应该将以下配置添加到conf.js文件中以解决超时问题。

contains

};

我认为上述解决方案将有助于此。