2014-08-29 2 views
1

제 생각에 waitForAngular는 각 단계에서 실행되며 다음 단계를 진행하기 전에 모든 종류의 각 렌더링 및/또는 $ http 호출을 기다립니다.protractors waitForAngular 및 angularfire/firebase

내 문제는 Angularfire/Firebase를 백엔드로 사용하고 있고 버튼을 클릭했을 때 waitForAngular가 너무 빨리 실행되고 다음 단계가 firebase 전에 발생했습니다. 결과가 돌아왔다.

누구나 waitForAngular를 으로 확장하는 간단한 방법을 알고 있습니까?은 Angularfire 전화를 기다리지 않습니까? 그게 내 문제를 해결하고 나는이 두려운 수면 전화를 모두 없앨 수 있었다. 이

element(by.css('.btn')).click() 
ptor.waitForAngular(); 
//execute something after 

같은 것을 사용하는 경우

+0

기본 'browser.ignoreSynchronization' 값을 수정하지 않는 한 waitForAngular가 실행됩니다. 각도기는 $ http 백엔드를 기다려야합니다. 그렇다면 버그가 아니며 문제의 작은 작동 예제를 설정하고 문제를 제출하는 것이 좋습니다 (https://github.com/angular/protractor/). issues/new). –

+1

AngularFire e2e 검사를 확인 했습니까? 그들은 모두 각도기를 사용하고 당신이 묘사 한 것과 동일한 문제를 해결했습니다. – Kato

+0

@Kato AFAICS AngularFire e2e 테스트는 수면을 사용합니다. – Rachel

답변

1

당신은 내가 일부 기본 정보에 대한 firebase을 가지고 있지만하지 않은이

var ptor = protractor.getInstance(); 
ptor.findElement(protractor.By.css('.btn')).click().then(function(){ 
    //execute something after 
}); 

같은 중첩 된 promise resolve 패턴으로 변환 시도 할 수 있습니다 그것을 사용했습니다. 하지만이 약속/http 요청을 도움이 될 것 같아요.