2016-04-07 6 views
2

Ich versuche zu testen, dass eine Growl-Nachricht erscheint, nachdem eine gültige E-Mail eingegeben wurde und der Absenden-Button angeklickt wurde.Winkelmesser (um Winkelknurren zu testen) passier/versagt inkonsistent

Ich weiß, dass die Funktionalität da ist, weil ich sehe, dass die Growl-Meldung erscheint, wenn der Webdriver läuft. Das Problem besteht darin, die Growl-Nachricht im Test zu erfassen.

Ich habe versucht, die forgotPasswordPage.submitButton.click() sowohl außerhalb (vor) und innerhalb der browser.wait Funktion. Wir haben unser Growl so konfiguriert, dass die Nachrichten für 4 s angezeigt werden, so dass ich die Wartezeit habe. Ich bin auf der Suche nach einem Weg, um diesen Test zuverlässiger zu machen, und im Idealfall wäre ich in der Lage, den Text zu testen, der sich tatsächlich in der Growl-Nachricht befindet, aber das Wichtigste zuerst.

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

Antwort

2

Wir hatten ein ähnliches Problem und versucht, eine Statusmeldung zu fangen, die für ein paar Sekunden erschien und verschwand dann, was wir Drehen des Winkelmesser-to-Angular-Sync off vorübergehend zu nähern hatte:

+0

Verwandte Problem https://github.com/angular/protractor/issues/169. Zusammenfassend - es gibt keine wirkliche Lösung außer dem oben genannten. – niaher

Verwandte Themen