Can protractor be made to run slowly?

cortfr picture cortfr · Jul 25, 2014 · Viewed 20.5k times · Source

Is there a way to run a Angular E2E test written using protractor slowly so that I can watch what is happening?

Answer

Filip Sobczak picture Filip Sobczak · Dec 15, 2014

Below is my solution to do that. So basically I created a decorator for current control flow execute function, which now additionaly queues a delay of 100ms before each queued action.

This needs to be run before any tests are invoked (outside describe block)

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