量角器 "before each" 挂钩错误,在 OnPrepare() 中添加了用于登录的非量角器页面
Protractor "before each" hook error with added non protractor page for login in OnPrepare()
我通过 ms azure 在 OpPrepare() 中添加了登录授权:
//Login before run the tests
browser.driver.get(browser.baseUrl);
element(by.css('#ms-login')).click();
userID.sendKeys(browser.params.login.user);
userPass.sendKeys(browser.params.login.password);
signInButton.click();
browser.sleep(1000);
signInButton.click();
// Login takes some time, so wait until it's done.
// For the test app's login, we know it's done when it redirects to
// index.html.
browser.driver.wait(function () {
return browser.driver.getCurrentUrl().then(function(url) {
return /dashboard/.test(url);
});
});
然后在 'dashboard' 页面上授权后,我不时看到相同的错误(可能在 40% 的测试运行中)。
错误代码:
dashboard landing page
1) "before each" hook
0 passing (50s)
1 failing
1) dashboard landing page "before each" hook:
Error: timeout of 50000ms exceeded
例如规格页面:
describe('dashboard landing page', function () {
var dashboardPage = require('./dashboard.page.js');
beforeEach(function () {
browser.get('#/dashboard');
});
it('should have some', function () {
expect(dashboardPage.some.count()).to.eventually.equal(5);
});
});
我做错了什么。请帮忙?
因此,通过添加以下内容解决了问题:
browser.waitForAngular();
在所有登录逻辑之后onPrepare: function ()
。
现在对我有用了。
我通过 ms azure 在 OpPrepare() 中添加了登录授权:
//Login before run the tests
browser.driver.get(browser.baseUrl);
element(by.css('#ms-login')).click();
userID.sendKeys(browser.params.login.user);
userPass.sendKeys(browser.params.login.password);
signInButton.click();
browser.sleep(1000);
signInButton.click();
// Login takes some time, so wait until it's done.
// For the test app's login, we know it's done when it redirects to
// index.html.
browser.driver.wait(function () {
return browser.driver.getCurrentUrl().then(function(url) {
return /dashboard/.test(url);
});
});
然后在 'dashboard' 页面上授权后,我不时看到相同的错误(可能在 40% 的测试运行中)。
错误代码:
dashboard landing page
1) "before each" hook
0 passing (50s)
1 failing
1) dashboard landing page "before each" hook:
Error: timeout of 50000ms exceeded
例如规格页面:
describe('dashboard landing page', function () {
var dashboardPage = require('./dashboard.page.js');
beforeEach(function () {
browser.get('#/dashboard');
});
it('should have some', function () {
expect(dashboardPage.some.count()).to.eventually.equal(5);
});
});
我做错了什么。请帮忙?
因此,通过添加以下内容解决了问题:
browser.waitForAngular();
在所有登录逻辑之后onPrepare: function ()
。
现在对我有用了。