目前我在这个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();
});
});
});
});
});
答案 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
};
我认为上述解决方案将有助于此。