2016-10-12 1 views
0

Ich arbeite mit einem Winkelmesser und Gurke, um ein React-Projekt zu testen. Im Zuge dessen habe ich einige Elemente, die Sichtbarkeit haben: verdeckt/sichtbar und ich würde gerne mit Procractor isDisplayed oder isPresent testen.Winkelmesser: browser.isElementPresent() gibt sowohl wahr als auch falsch an

schrieb ich einen kleinen Test, weil ich einige seltsame Ausgang war immer, und es sieht wie folgt aus:

this.Then(/^skal jeg kunne legge inn et nummer$/, function() { 
    var inputfelt = element(by.css(".mdl-textfield__input")) 
    expect(browser.isElementPresent(inputfelt)).to.eventually.equal(true) 
    expect(browser.isElementPresent(inputfelt)).to.eventually.equal(false) 
}); 

Dies ist meine letzte Version davon, wo ich browser.isElementPresent verwende. Ich habe auch Inputfelt.isDisplayed und Inputfelt.isPresent verwendet und für alle drei diesen Test bestanden.

Ich kann nicht sehen, wie es gehen sollte, da das Feld nicht vorhanden sein kann und nicht vorhanden sein kann.

Verwende ich das falsch?

+0

Ich benutze Gurke oder nicht Chai-as-versprochen, damit ich nicht sicher bin, wie 'to.eventually.equal' funktioniert, aber die Erklärungen zu dieser Frage helfen tun? http://stackoverflow.com/questions/33019429/in-protractor-browser-iselementpresent-vs-element-ispresent-vs-element-iselemen – Gunderson

+0

@Gunderson Ich habe mir das vorher angeschaut und deshalb benutze ich den Browser .isElementPresent im obigen Beispiel. Aus diesem Post geht hervor, dass ich browser.isElementPresent verwenden sollte, da ich React und nicht Angular verwende. – CraftyViking

Antwort

0

Ich denke, Sie sollten einen Wrapper verwenden, weil Sie Versprechungen verwenden. Deshalb besteht jedes Versprechen, das gelöst wird, den Test. Versuchen Sie, den folgenden Code:

this.Then(/^skal jeg kunne legge inn et nummer$/, function() { 
    var inputfelt = element(by.css(".mdl-textfield__input")) 
    return protractor.promise.all([ 
     expect(browser.isElementPresent(inputfelt)).to.eventually.equal(true), 
     expect(browser.isElementPresent(inputfelt)).to.eventually.equal(false) 
    ]); 
}); 
+0

Danke. In der Zeit, seit ich die Frage gestellt habe, entschied sich das Team, den Winkelmesser nicht mehr zu verwenden, weshalb ich nicht mehr auf dieses Problem stoße. – CraftyViking

Verwandte Themen