У меня есть некоторые тесты, написанные с использованием транспортира для приложения angular.js. Я использую шаблон дизайна Page Objects
, и у меня есть некоторые методы, которые переходят на другие страницы, нажимая на ссылки и кнопки. и вскоре после этого я звоню browser.waitForAngular()
.
Объект страницы
module.exports = function () {
this.companyNameLink = element(by.id('viewCompany'));
this.newMeetingButton = element(by.id('newMeetingButton'));
this.createNewGeneralMeeting = function () {
this.newMeetingButton.click();
browser.waitForAngular();
};
this.goToCompanyPage = function () {
this.companyNameLink.click();
browser.waitForAngular();
};
};
И в каком-то конкретном файле я использую этот объект страницы следующим образом.
var DashboardPage = require('../dashboardPageObject.js');
dashboardPage = new DashboardPage();
...
dashboardPage.goToCompanyPage();
Но проблема в том, что иногда я получаю ошибку angular could not be found on the window
, и мои тесты терпят неудачу. Большую часть времени тесты проходят. Эта проблема случайна. Мой вопрос заключается в том, что я должен удалить browser.waitForAngular()
из метода объекта страницы и вызвать его после того, как сделаю вызов метода таким, как это...
Измененный объект страницы
...
this.goToCompanyPage = function () {
this.companyNameLink.click();
};
...
Файл спецификации
dashboardPage.goToCompanyPage();
browser.waitForAngular();
Вызывает ли вызов browser.waitForAngular()
проблему? Где мне позвонить waitForAngular
, есть ли какая-нибудь лучшая практика в отношении того, как это использовать?