量角器解决了Chrome的承诺,但不是Phantom

时间:2017-09-18 21:28:18

标签: protractor phantomjs

当使用Protractor运行端到端测试时,我发现在使用Chrome运行时,我的测试中的承诺得到了解决。但是当使用Phantom运行时,回调将永远不会执行,并且测试最终会超时并显示消息Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

我的 protractor.config.js 文件如下所示:

exports.config = {
  baseUrl: 'http://localhost:3000/',
  suites: {
    // ...
  },
  directConnect: !(process.env.NODE_ENV === 'CI'),
  exclude: [],
  multiCapabilities: [{
    browserName: process.env.NODE_ENV === 'CI' ? 'phantomjs' : 'chrome',
    'phantomjs.cli.args': ['--web-security=false',
      '--ignore-ssl-errors=true'
    ]
  }],
  allScriptsTimeout: 110000,
  getPageTimeout: 100000,
  framework: 'jasmine2',
  jasmineNodeOpts: {
    isVerbose: false,
    showColors: true,
    includeStackTrace: false,
    defaultTimeoutInterval: 400000,
    print: function() {}
  },
}

使用此配置,以下测试将执行Chrome的回调,但不会为幻影执行回调:

let targetUrl = '/foo';
it ('should resolve the route properly', function (done) {
  browser.getCurrentUrl().then(function (url) {
      console.log("****"); // This is printed in Chrome, but not Phantom
      expect(url).toContain(targetUrl);
      done();
})});

节点模块版本

量角器:5.0.0 幻影:4.0.0 PhantomJS 2.1.7 PhantomJS-prebuilt:2.1.14 Webdriver Manager(在Protractor中):11.1.1

有什么想法吗?

0 个答案:

没有答案