Mam kilka testów napisanych za pomocą kątomierza dla aplikacji angular.js. Używam wzoru projektowego Page Objects
i mam kilka metod, które przechodzą do innych stron, klikając łącza i przyciski. a wkrótce potem zadzwonię pod numer browser.waitForAngular()
.Kątomierz - gdzie użyć browser.waitForAngular()
Page Object
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();
};
};
aw niektórych pliku spec używam tę stronę przedmiotu takiego ..
var DashboardPage = require('../dashboardPageObject.js');
dashboardPage = new DashboardPage();
...
dashboardPage.goToCompanyPage();
Ale problem jest czasami pojawia się błąd angular could not be found on the window
i moje próby nie . Większość testów trwa. Ten problem jest losowy. Moje pytanie brzmi, że należy usunąć browser.waitForAngular()
od metody stronę obiektu i nazywają to po dokonaniu wywołanie metody takiego ...
Modified Page Object
...
this.goToCompanyPage = function() {
this.companyNameLink.click();
};
...
Spec File
dashboardPage.goToCompanyPage();
browser.waitForAngular();
Czy wywołanie browser.waitForAngular()
powoduje emisję? Gdzie powinienem zadzwonić pod numer waitForAngular
czy istnieje jakaś sprawdzona metoda korzystania z tego?
Mam ten przypadek użycia jak w, test zmian wprowadzonych na stronie po odświeżeniu. Wprowadź zmiany -> kliknij przycisk Zapisz (nie spowoduje to odświeżenia strony) -> odśwież -> przetestuj ponownie załadowaną stronę. W takim przypadku odświeżenie jest uruchamiane przed zakończeniem funkcji składowania, co powoduje niepotrzebne wyświetlanie alertów przeglądarki na stronie. Musiałem użyć, waitForAngular() przed uruchomieniem odświeżania strony. –
Cóż, jeśli odświeżysz się, wywołując 'browser.refresh', powinien poczekać, aż poprzednia operacja zakończy się automatycznie. Właśnie spojrzałem na kod i zweryfikowałem, że to robi (https://github.com/angular/protractor/blob/3.0.0/lib/protractor.js#L726) (jeśli nie wyłączyłeś funkcji synchronizacji to jest). Być może złapałeś błąd - możesz zgłosić problem na [github strony] kątomierza (https: // github.com/kątowe/kątomierz/problemy), jeśli tak jest. –