Protractor: Winkelmesser browser.sleep() wird nicht ausgeführt.

Erstellt am 1. Juli 2016  ·  3Kommentare  ·  Quelle: angular/protractor

Unten sehen Sie, dass browser.sleep ausgeführt werden soll, wenn der Client XYZ ist, aber immer noch nicht ausgeführt wird. Wenn ich eine console.log nach der browser.sleep-Anweisung einfüge, wird diese Anweisung ausgeführt (ich kann die Anweisung sehen), aber die browser.sleep wartet nicht wirklich, obwohl ich die Schlafzeit erhöhe.

Warum funktioniert browser.sleep nicht? Wie lasse ich es warten, wenn der Client XYZ ist?

           if (testproperties.client == 'ABC'){
                browser.ignoreSynchronization = false;
                browser.waitForAngular();
                browser.ignoreSynchronization = true;    
            }
            else if (testproperties.client == 'XYZ'){
                browser.sleep('35000');
            };

Hilfreichster Kommentar

@gamecheck80 entferne einfache Anführungszeichen im

// use like this
browser.sleep(35000);

Alle 3 Kommentare

@gamecheck80 entferne einfache Anführungszeichen im

// use like this
browser.sleep(35000);

Ganz schnell zur Klarstellung: browser.sleep gibt ein Versprechen zurück. Schau dir das genau an:

  • browser.sleep ruft webdriver.sleep auf
  • webdriver.sleep fordert den Kontrollfluss auf, eine Zeitüberschreitung durchzuführen
  • timeout ruft die Verzögerung auf, die am Ende die Methode setTimeout aufruft, und dies könnte eine Zeichenfolge sein, solange diese Zeichenfolge eine Zahl ist.

browser.sleep('35000') ist eine akzeptable Eingabe.

Da browser.sleep ein Promise zurückgibt, scheint es nur zu funktionieren, wenn Sie warten, bis das Promise beendet ist.

describe('browser', function() {
  it('should sleep', function() {
    browser.get('http://angularjs.org');

    // does not work
    // browser.sleep(10000);
    // console.log('waited 10 seconds?');
    // this does not work and "waited 10 seconds?" appears immediately after navigating

    // after sleeping then print "waited 10 seconds"
    browser.sleep(10000).then(function() {
      console.log('waited 10 seconds');
    });
  });
});

Hoffentlich hilft das. Wenn Sie weitere Hilfe benötigen, stellen Sie Ihre Support-Fragen bitte auf StackOverflow , Google Group-Diskussionsliste oder Gitter . Weitere Informationen finden Sie unter https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions

Dankeschön!

browser.sleep(10000).then(funktion() {
console.log('10 Sekunden gewartet');
});
Die Verwendung mit Angular 6 und Winkelmesser Version 5.4.1 funktioniert nicht, zumindest sehe ich das so

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen