2016-11-02 2 views
0

각도 부트 스트랩 모달에서 취소 버튼을 클릭하고 싶습니다. 이것은 모달을 닫아야합니다. 모달이 더 이상 보이지 않고 WebElement.isDisplayed() 약속을 사용하고 있는지 테스트하고 싶습니다. 내가 알 경우 브라우저를 사용하십시오. 내 테스트는 통과하지 못합니다. 다음 코드 각도기가 닫혀 있는지 각도기가 점검합니다. browser.waitForAngular

variableExpenseModal.cancel(); 
browser.waitForAngular(); 
expect(variableExpenseModal.modalIsDisplayed()).toEqual(false); 

는이 테스트를 할 수있는 적절한 방법이다 (나는 내 ​​자신의 페이지 객체를 정의)합니까? browser.waitForAngular를 사용해야합니까? 아니면 이것을하기 위해 약속을 사용하는 어떤 방법을 놓치고 있습니까? 제발 조언.

+0

나는 아마도 전환이 문제의 일부를 일으키는 것으로 보았습니다. – Maccurt

+0

DOM을 닫거나 닫을 때 DOM에서 제거 되었기 때문에 모달에 isPresent를 사용하는 것이 가장 좋습니다. 또한 onprepare에서 내 각도기 구성의 모든 애니메이션을 끄는 것이 유용하다는 것을 알았습니다. 여전히 브라우저를 사용해야했습니다 .waitForAngular()하지만 이제 전환 및 애니메이션으로 인해 간헐적으로 실패하지 않습니다. – Maccurt

답변

2

제 문제는 conf.js (config) 파일에서 애니메이션을 제거하는 것이 었습니다.

onPrepare: function() {   

    // Disable animations so e2e tests run more quickly 
    //this will also prevent failure that are intermittent due to transitions 
    var disableNgAnimate = function() { 
     angular.module('disableNgAnimate', []).run(['$animate', function ($animate) { 
      $animate.enabled(false); 
     }]); 
    }; 

    browser.addMockModule('disableNgAnimate', disableNgAnimate); 
} 

내 문제의 원인이었던 모달 전환/애니메이션이었습니다. isDisplayed() 대신 isPresent()를 사용하는 것이 나을수록 좋습니다. 나는 내가 browser.waitForAngular()

it('click the save button and the modal should not be displayed',() => { 
    variableExpenseModal.save(); 
    expect(variableExpenseModal.isPresent()).toEqual(false); 
}); 

주를 제거 할 수 있었다했을 때 : 내 코드는 페이지 객체를 사용하고 있습니다.

+0

편집 해 주셔서 감사합니다. – Maccurt

관련 문제