2016-11-10 1 views
3

So habe ich ein Element identifiziertÜberprüfen der Menge von Elementen erwarten mit

var errorAlert = element.all('[id*="type-alert"]'); 

Ich versuche, eine Funktion zu erstellen, die es werden überprüfen, sind 2 angezeigt Benachrichtigungen ..

this.isAlertsDisplayed = function() { 
    return expect(errorAlert.count()).toEqual(2); 
}; 

Ich halte ein Gettin friken typeError: .toEqual ist keine Funktion, wenn ich dieses Beispiel für andere gesehen habe. Was mache ich falsch?

Antwort

2

@Danny auf dem richtigen Weg ist. Abgesehen davon, dass man einfach die by.css() Teil fehlt, ersetzen:

var errorAlert = element.all('[id*="type-alert"]'); 

mit:

var errorAlert = element.all(by.css('[id*="type-alert"]')); 

Oder mit:

var errorAlert = $$('[id*="type-alert"]'); 

Beachten Sie, dass diese Art von Problemen vor Ort können viel früher im Prozess - statisch, noch bevor Sie Ihre Tests ausführen und versuchen herauszufinden, was schief gelaufen ist. Wenn Sie verwenden würden ESLint und eslint-plugin-protractor plugin (> = 1.29.0), die valid-locator-type rule würden Sie warnen, wenn Sie eine wörtliche zu element() oder element.all() bestanden haben, oder wenn Sie ein „von“ Locator $() oder $$() geben.

Und wenn Sie ESLint in Ihrem IDE der Wahl konfiguriert haben, ist hier, wie Sie die Warnung während der Live-Codierung (zB aus PyCharm) erhalten würde:

enter image description here

+0

mit $$ versucht, so gut aber dasselbe Ergebnis. Am Ende habe ich nur die Methode geändert, um nach der letzten zu suchen, wenn es 0 wäre, würde es immer noch fehlschlagen. – Tree55Topz

+0

@ Tree55Topz Ihr Problem hat mich dazu inspiriert, zu der "valid-locator-type" ESLint-Regel zurückzukehren, die ich zu Ende führen wollte. Jetzt ist es fertig und veröffentlicht. Bitte sehen Sie die aktualisierte Antwort. – alecxe

2

Ihr Locator ist falsch. Ihr Locator sollte by.css() oder by.id oder so ähnlich haben.

Versuchen var errorAlert = $$('[id="type-alert"]') or var errorAlert = element.all(by.id('type-alert'))

Verwandte Themen