우리의 응용 프로그램에는 진행률 표시 줄을 업데이트하는 몇 가지 질문이 있습니다. 현재 HTML 속성 변경을 기다리는 기능이 있지만 대다수의 경우 작동하지만 막대가 0 ~ 10 % 등으로 움직일 때마다 애니메이션이 1 초에서 2 초가 지나기 때문에 진행 막대에 조금 신경을 써야합니다. 나는 현재 직면하고있다 : Expected 11 to be within range 12, 14
.각도기가 완료 될 때까지 애니메이션 완료
코드 :
Util.prototype.waitForAttributeChange = function (el, attr, time) {
var timeout = time || 0,
currentAttr;
el.getAttribute(attr).then(function (val) {
currentAttr = val;
return currentAttr;
}).then(function() {
return browser.wait(function() {
return el.getAttribute(attr).then(function (val) {
return val !== currentAttr;
});
}, timeout);
});
};
사용 :
Util.waitForAttributeChange(Page.progressBar(), 'style', 10000).then(function() {
expect(Page.getProgressBarValue()).toBeWithinRange(12, 14);
};
문제는 : 잡고 값은 그것을 잡아 때 여전히 움직이고, 진행 표시 줄의 최종 결과는 아니다 (내 함수가 속성 변경을 기다리고 속성이이 시점에서 변경 되었기 때문에)
질문 : 애니메이션을 기다릴 수있는 또 다른 방법이 있습니까? 특히 애니메이션이 완료 될 때까지 기다릴 수 있습니까? 그리고/또는 browser.sleep()
을 사용하지 않고 이것이 가능합니까?
방법 [모든 각도 애니메이션을 사용하지 않도록 설정]에 대한 (http://stackoverflow.com/questions/26584451/how-to-disable-animations-in-protractor-for-angular-js-application)? – alecxe
그래, 나는 그 글을 보았지만, 내가하고 싶었는지 확실하지 않았다. 그 (것)들을 무능하게하기에 어떤 아래쪽 있는가? 예기치 않은 행동을 유발합니까? – Gunderson
저는 개인적으로 애니메이션을 비활성화 한 후 아무런 문제가 없었던 것을 기억하지 않습니다. 반대로 나는 여분의'browser.wait()'호출을 제거한 것을 기억합니다. 그것을 시도하고 도움이되는지 확인하십시오. 감사. – alecxe