2016-11-26 3 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); 
      }); 
    }); 
}); 

Thanks.

ответ

1

Осмотрите элемент тоста, как только он будет показан, а затем попытайтесь захватить сообщение, используя css.

В одном из наших проектов, где мы используем угловой-toastr, это делает трюк:

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

Вы можете использовать эту функцию и вызывать ее в тесте: Сначала я жду присутствие в йоте , затем видимость, а затем я возвращаю текст:

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(); 
     }) 
    }) 

};