量角器在页面加载后等待30秒(Angular 2)

时间:2017-05-14 15:49:21

标签: javascript angular jasmine protractor

我正在为Protalactor的Angular 2/4应用程序编写我的第一个E2E测试。这样可以正常加载页面并填充输入字段。

一个大问题是,在每次加载页面后,测试会在下一个操作完成后等待大约30秒。

例如,我使用browser.get()调用应用程序的登录页面。该页面显示在测试浏览器中,30秒后,用户和密码将填入输入字段。

这是我的protractor.conf.js:

let SpecReporter = require('jasmine-spec-reporter').SpecReporter;

exports.config = {
  allScriptsTimeout: 60000,
  getPageTimeout: 60000,
  suites: {
    mandators: './e2e/mandators/**/*.e2e-spec.ts'
  },
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    showTiming: true,
    isVerbose: false,
    includeStackTrace: false,
    defaultTimeoutInterval: 120000,
    print: function() {}
  },
  useAllAngular2AppRoots: true,
  beforeLaunch: function() {
    require('ts-node').register({ project: 'e2e' });
  },
  onPrepare: function() {
    browser.manage().window().maximize();
    jasmine.getEnv().addReporter(new SpecReporter());
  }
};

长时间等待的原因是什么?这是正常行为吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。在我的情况下,问题是在源代码中,我使用setTimeout()30秒。并且Protractor一直等待计时器的结束,然后才开始运行测试场景。 使用 zone.runOutsideAngular()

解决了这个问题