2016-11-26 1 views
1

어떤 행동을 취한 후에 ngToast 메시지를 잡아야합니다. 나는이 사이트에서 다른 해결책을 시도했지만, 그들은 나를 도와주지 않았고 나는 왜 그런지 모르겠다. 누구나 작동하는 해결책이 있습니까? 마지막 시도는 다음과 같습니다 :각도기로 ngToast를 잡는 방법?

var HomePage = require('./home.pageObject'); 

describe('Home Page tests', function() { 
    var homePage = new HomePage(); 
    var EC = protractor.ExpectedConditions; 

    beforeEach(function() { 
     browser.get('/#/'); 
    }); 

    it('should fail login', function() { 
     var toast = $('.ng-toast'); 
     homePage.signinBtn.click(); 
     homePage.login('admin', 'Password') 
      .then(function() { 
       var toast = $('.alert'); 
       browser.wait(EC.visibilityOf(toast), 3000); 
      }); 
    }); 
}); 

감사합니다.

답변

1

표시된 토스트 요소를 검사 한 다음 css를 사용하여 메시지를 가져 오십시오. 이 기능을 사용하여 테스트를 호출 할 수 있습니다

element(by.css('#toast-container .toast-message') 
0

: 우리는 각-toastr을 사용하여 우리의 프로젝트 중 하나에서

, 이것은 트릭을 수행 우선은 DOM에 존재를 기다리고 있어요 , 가시성을 확인한 다음 텍스트를 반환합니다.

this.returnToastText= function(){ 

    browser.wait(EC.presenceOf(element(by.css(".alert"))), 3000).then(function() { 
     browser.wait(EC.visibilityOf(element(by.css(".alert"))), 3000).then(function() { 
      return toastText= element(by.css(".alert")).getText(); 
     }) 
    }) 

};