web-dev-qa-db-fra.com

Peut-on faire fonctionner le rapporteur lentement?

Existe-t-il un moyen d'exécuter un test Angular E2E écrit à l'aide du rapporteur lentement afin que je puisse regarder ce qui se passe?

50
cortfr

Voici ma solution pour le faire. Donc, fondamentalement, j'ai créé un décorateur pour la fonction execute du flux de contrôle actuel, qui met désormais en file d'attente un délai de 100 ms avant chaque action en file d'attente.

Cela doit être exécuté avant que des tests soient invoqués (en dehors du bloc describe)

var origFn = browser.driver.controlFlow().execute;

browser.driver.controlFlow().execute = function() {
  var args = arguments;

  // queue 100ms wait
  origFn.call(browser.driver.controlFlow(), function() {
    return protractor.promise.delayed(100);
  });

  return origFn.apply(browser.driver.controlFlow(), args);
};
77
Filip Sobczak

Tout comme George Stocker l'a dit dans le commentaire, je ne sais pas pourquoi vous voudriez faire ça ... mais vous pouvez toujours ajouter un sommeil où vous voulez dans votre test.

browser.sleep(6000);
13
David Greenwell

Vous pouvez entrer en "mode débogage" en plaçant dans votre code la commande:

browser.pause();

En mode débogage, vous verriez la sortie suivante dans votre terminal:

------- WebDriver Debugger -------
ready

press c to continue to the next webdriver command
press d to continue to the next debugger statement
type "repl" to enter interactive mode
type "exit" to break out of interactive mode
press ^C to exit

Vous pourrez alors:

  • Exécutez commande par commande en entrant c
  • Passez à la prochaine instruction de débogage (browser.pause() suivante) en entrant d
  • Entrez en mode interactif où vous pouvez interagir avec tous les éléments en entrant repl
11
Julio

Les réponses précédentes ressemblent plus à une solution de contournement. Une autre façon consiste à ajouter des paramètres à la configuration de Protractor:

highlightDelay: 1000

Et changez pour:

directConnect: false

Cela retardera les actions du rapporteur comme cliquer ou taper pendant 1 seconde et sera mis en évidence en bleu clair.

8
Justas