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?
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);
};
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);
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:
c
browser.pause()
suivante) en entrant d
repl
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.