有没有一种方法可以缓慢地运行使用 Protractor 编写的Angular E2E测试,以便我可以观察发生了什么?

最佳答案

下面是我的解决方案。因此,基本上,我为当前的控制流execute函数创建了一个装饰器,该装饰器现在在每个已排队的 Action 之前另外排队100ms的延迟。

这需要在调用任何测试之前运行(在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);
};

09-25 22:10