2016-05-23 16 views
1

Ich versuche, ein Element durch Bindung zu finden, das Problem ist, dass das Element ein Toast ist.Winkelmesser kann Element durch Bindung nicht finden

Ich verwende:

element(by.css('.btn-primary3')).click() 

den Klick zu simulieren. Daher erscheint der Toast während des Tests im Browser.

Dann versuche ich das Element in einer Variablen zu speichern und zu testen, ob der Textwert des Toast gleich dem erwarteten Wert ist.

var toast = element(by.binding('toast.toast.title')); 
expect(toast.getText()).toEqual('Inloggen mislukt'); 

Aber hier erscheint der Fehler.

Failed: No element found using locator: by.binding("toast.toast.tile") 

Als ich den Toast Element in der die Entwickler-Tools Chrome überprüfen zeigt es wie folgt auf,

<div data-ng-repeat="toast in activeToasts"> 
    <span data-ng-bind="toast.toast.title" class="ng-binding"> Inloggen mislukt</span> 
</div> 

denke ich, das Problem kommt von der Tatsache, dass die Spanne enthält die Bindung nicht existieren auf dem Dom, wenn die Seite geladen wird. Es wird erstellt, wenn auf die Schaltfläche geklickt wird.

+0

Try-Tool namens 'Elementor' es hilft rlly mit AngularJS Anwendung und ermöglicht es Ihnen, Locators zu finden. Wird es als Auswahlliste im Browser generiert? Brauchen Sie das, um eine gültige Antwort zu liefern. – Hikaryu

Antwort

1

Wenn dies der Fall ist, wait for the presence of the element nach einem Klick auf den Button:

element(by.css('.btn-primary3')).click(); 
var toast = element(by.binding('toast.toast.title')); 

browser.wait(EC.presenceOf(toast), 5000); 
expect(toast.getText()).toEqual('Inloggen mislukt'); 
+0

Ich bekomme "EC ist nicht definiert" !! –

+0

@AnkurShah ah ja, es ist definiert als 'var EC = Winkelmesser.ExpectedConditions'. – alecxe

Verwandte Themen