J'essaie de tester qu'un message de growl apparaît après qu'un email valide soit entré et que le bouton de soumission soit cliqué.Protractor (pour tester angular-growl) passant/échouant de manière incohérente
Je sais que la fonctionnalité est là, parce que je vois le message growl apparaître quand webdriver est en cours d'exécution. Le problème est de capturer le message growl dans le test.
J'ai essayé de mettre le forgotPasswordPage.submitButton.click()
à l'extérieur (avant) et à l'intérieur de la fonction browser.wait. Nous avons notre growl configuré pour afficher les messages pendant 4 s donc c'est là que j'ai eu le temps d'attente. Je cherche un moyen de rendre ce test plus fiable, et idéalement, je serais capable de tester le texte qui est réellement dans le message de growl, mais la première chose est d'abord.
it('should display green growl message if user email does exist', function(){
// uses testUsers[0]
forgotPasswordPage.emailInput.sendKeys(testUsers[0].email);
browser.wait(function() {
forgotPasswordPage.submitButton.click();
return element(by.css('.alert-success')).isPresent()
}, 4000)
.then(function(growlMessageIsPresent){
expect(growlMessageIsPresent).toBeTruthy();
})
.then(null, function(err) {
console.log('error', err)
expect(err).not.toBeTruthy();
})
})
Problème connexe https://github.com/angular/protractor/issues/169. En résumé - il n'y a pas de vraie solution, sauf celle ci-dessus. – niaher