2017-08-24 3 views
1

Ich bin ziemlich neu beim Testen von Protractor E2E und frage mich, ob es möglich ist, dass ein Element anklickbar ist (ExpectedConditions.elementToBeClickable), aber nicht unbedingt sichtbar ist (ExpectedConditions.visibilityOf).Anklickbar, aber nicht sichtbar?

Zum Beispiel habe ich den folgenden Code:

var EC = protractor.ExpectedConditions; 
    var tryItButtonClickable = EC.elementToBeClickable(tryItButton); 
    var tryItButtonVisible = EC.visibilityOf(tryItButton); 

    return browser.wait(EC.and(tryItButtonClickable, tryItButtonVisible), getWaitTime()) 
     .then(function() { 
      var protocol = url.parse(myarray[0].url).protocol; 
       if (protocol === null) { 
        throw new Error('expected ' + protocol + ' not to be null'); 
       } 
     }) 

Vor dem Hinzufügen des tryItButtonVisible Stück, würde ich eine Auszeit Fehler von Protractor erhalten, vermutlich, weil mein tryItButton klickbare war aber in der nicht hatte geladen DOM.

Ist das wahr, oder bin ich redundant?

Dank

Antwort

0

Diese offical klickbare Funktion von Winkelmesser ist

elementToBeClickable(elementFinder: ElementFinder): Function { 
return this.and(this.visibilityOf(elementFinder),() => { 
    return elementFinder.isEnabled().then(passBoolean, falseIfMissing); 
}) 

wie Sie sehen, überprüft er Element Sichtbarkeit zuerst so Antwort NEIN Ressource

ist: https://github.com/angular/protractor/blob/master/lib/expectedConditions.ts Linie: 188

+0

I Bin dann nur gespannt, warum wenn ich und beide Bedingungen zusammen sind, das Verhalten das erwartete ist, während wenn ich nur "elementToBeClickable" benutze, friert meine Benutzeroberfläche ein und kann Finde das Element nicht –

Verwandte Themen