Rapporteur - l'endroit Où l'utilisation du navigateur.waitForAngular()

J'ai quelques tests écrits à l'aide de rapporteur pour angular.js app. Je suis à l'aide de Page Objects modèle de conception, et là, j'ai quelques méthodes que naviguer vers d'autres pages en cliquant sur les liens et les boutons. et peu de temps après que je l'appelle browser.waitForAngular().

Objet Page

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();
    };
};

Et, dans certains fichier spec-je utiliser cette page un objet comme ça..

var DashboardPage = require('../dashboardPageObject.js');
dashboardPage = new DashboardPage();

...

dashboardPage.goToCompanyPage();

Mais le problème est que parfois j'ai l' angular could not be found on the window erreur et mes tests échouent. La plupart du temps l'exécution des tests. Ce problème est aléatoire. Ma question est que dois-je enlever la browser.waitForAngular() à partir de la page méthode de l'objet et de l'appeler une fois que j'ai l'appel de la méthode comme ceci...

Page Modifiée Objet

...
this.goToCompanyPage = function () {
    this.companyNameLink.click();
};
...

Fichier Spec

dashboardPage.goToCompanyPage();
browser.waitForAngular();

Appelle browser.waitForAngular() à l'origine du problème? Où dois-je appeler waitForAngular est-il de meilleures pratiques sur la façon de l'utiliser?

OriginalL'auteur Kasun Kodagoda | 2015-06-17