Protractor - 브라우저를 사용할 위치입니다.WaitFor Angular()
저는 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
이것을 사용하는 방법에 대한 가장 좋은 방법이 있습니까?
트랙터 설명서에서:
웹 드라이버에게 Angular가 렌더링을 완료하고 $http 또는 $타임아웃 호출이 없을 때까지 기다리라고 지시한 후 계속합니다.트랙터는 모든 웹 드라이버 작업 전에 이 명령을 자동으로 적용합니다.
당신은 이것을 전혀 부르지 말아야 하고, 당신이 어디에 있어야 하는지 타당한 경우를 생각해 낼 수가 없습니다.
사용하는 대신waitForAngular
, 당신은 당신이 돌려준 약속을 처리해야 합니다.click
.
따라서 우선 페이지 오브젝트 메소드는 다음과 같은 약속을 반환해야 합니다.
this.goToCompanyPage = function () {
return this.companyNameLink.click();
};
그러면 이 방법을 실제로 사용하는 방법은 다음과 같습니다.
dashboardPage.goToCompanyPage().then(function() {
// this will be executed when the click is done.
// No need for any waitForAngular.
});
자세한 예는 Angular PhoneCat Protractor test Suite의 상태/페이지 개체 버전을 참조하십시오.
브라우저를 사용하고 있습니다.브라우저를 통해 특정 페이지로 이동하기 전에 WaitForAngular().Url 그렇지 않으면 브라우저 로그에 오류가 발생하여 테스트 정리 중이라고 주장합니다.
언급URL : https://stackoverflow.com/questions/30882671/protractor-where-to-use-browser-waitforangular
'programing' 카테고리의 다른 글
MVC 모델 데이터 가져오기 및 각도 전달JS컨트롤러 (0) | 2023.09.19 |
---|---|
PHP 함수가 정수를 요청할 때 부울 인수를 허용하는 이유는 무엇입니까? (0) | 2023.09.19 |
$http response Set-Cookie에 액세스할 수 없습니다. (0) | 2023.09.19 |
true 또는 false 대신 1 또는 0을 기준으로 Spring @RequestParam 매핑 부울 (0) | 2023.09.19 |
이미지가 div 테두리 안에 머물지 않습니다. (0) | 2023.09.19 |