2016-11-08 4 views
1

So fand ich dieses kleine Stück Code online, die für das Warten auf eine eindeutige Kennung funktioniert ziemlich gut auf der Seite geladen werden, bevor Sie mit ihm interagieren ..waitForElementsToBePresent in Protractor

this.waitForElementToBePresent = function(element) { 
    browser.wait(function() { 
     return element.isPresent(); 
    }, 60000); 
    }; 

Ich bin neu in JS und Winkelmesser .. Ich frage mich, wie dieser Code geändert werden könnte, um auf die Anwesenheit eines Elements zu warten, wo es Vielfache gibt. Ich weiß, Sie verwenden $$ für den Bezeichner, wenn Multiples sind, aber wie kann ich diese Methode ändern zu erkennen, dass so würde ich dann etwas tun, wie ..

utility.waitForElementsToBePresent(myElement).get(0); 
+1

versuchen Sie dies. 'var myElement = $$ ('. someclass'). get (0); utility.waitForElementsToBePresent (myElement) ' –

+0

Dieser Vorschlag funktionierte für mich! – Tree55Topz

Antwort

1

Blick auf Alecxe Antwort auf this question. Ich benutze es seit einer Weile und es funktioniert perfekt. Hier ist meine leicht modifizierte Version:

0

Anstatt eine neue Funktion zu machen, würde ich wahrscheinlich nur Element in einer Gruppe zuletzt dann warten.

var els = elements.all(by.css("#id")); 
waitForElementToBePresent(els.last()); 

Als etwas ther zu erinnern ist, „isPresent“ und „wirdangezeigt“, Gegenwart bedeutet, dass ein Element auf der Seite vorhanden ist, sichtbar oder nicht. Wenn Sie darauf warten möchten, dass es tatsächlich auf der Seite angezeigt wird, warten Sie zuerst, bis es angezeigt wird, und warten Sie dann, bis es angezeigt wird.

http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.last