Protractor: Le rapporteur browser.sleep() n'est pas exécuté.

Créé le 1 juil. 2016  ·  3Commentaires  ·  Source: angular/protractor

Dans ce qui suit, vous pouvez voir que browser.sleep est censé être exécuté si le client est XYZ, mais il n'est toujours pas exécuté. Si je mets un fichier console.log après l'instruction browser.sleep, cette instruction est exécutée (je peux voir l'instruction) mais browser.sleep n'attend pas vraiment, même si le temps de sommeil augmente.

Pourquoi le browser.sleep ne fonctionne-t-il pas ? Comment puis-je le faire attendre si le client XYZ ?

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

Commentaire le plus utile

@ gamecheck80 supprime les guillemets simples dans le

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

Tous les 3 commentaires

@ gamecheck80 supprime les guillemets simples dans le

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

Clarification très rapide : browser.sleep renvoie une promesse. En y regardant de près :

  • browser.sleep appelle webdriver.sleep
  • webdriver.sleep demande au flux de contrôle d'effectuer un délai d'attente
  • timeout appelle le délai qui à la fin appelle la méthode setTimeout et cela pourrait être une chaîne tant que cette chaîne est un nombre.

browser.sleep('35000') est une entrée acceptable.

Étant donné que browser.sleep renvoie une promesse, il n'apparaîtra que cela fonctionne que si vous attendez que la promesse se termine.

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');
    });
  });
});

Espérons que cela aide. Pour plus d'aide, veuillez poser vos questions d'assistance sur StackOverflow , la liste de discussion du groupe Google ou Gitter . Pour plus d'informations, veuillez consulter https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions

Merci!

browser.sleep(10000).then(function() {
console.log('attendu 10 secondes');
});
L'utiliser avec Angular 6 et la version 5.4.1 du rapporteur ne fonctionne pas, du moins c'est ce que je vois

Cette page vous a été utile?
0 / 5 - 0 notes