【问题标题】:Protractor waits 30 secs after page is loaded (Angular 2)量角器在页面加载后等待 30 秒(Angular 2)
【发布时间】:2017-05-14 15:49:20
【问题描述】:

我正在使用 Protractor 为 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());
  }
};

这么长时间的等待可能是什么原因?这是正常现象吗?

【问题讨论】:

  • 您是否正确通知了量角器测试中的下一步调用(已完成)?
  • 您使用的是哪个版本的量角器?您确定在后台没有打开的 Angular 调用(如间隔或其他东西)会阻止 Protractor 查看 Angular 是否已准备好。在大多数情况下,这就是问题
  • @quirimmo “通知下一步调用”是什么意思?我在任何教程中都没有看到类似的东西。
  • @wswebcreation 我正在使用量角器 5.1.1。没有什么比间隔更重要的了。但是在 Chrome 中开发人员工具的网络连接中,我看到一个未决的 websocket 连接。这可能是原因。但问题是:谁在打开 websocket 连接?
  • 你的应用,量角器不会影响

标签: javascript angular jasmine protractor


【解决方案1】:

我遇到了同样的问题。就我而言,问题是在源代码中,我使用了 setTimeout () 30 秒。而量角器一直在等待计时器结束,然后他才开始运行测试场景。 使用 zone.runOutsideAngular()

解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2015-05-06
    • 2018-03-03
    • 1970-01-01
    相关资源
    最近更新 更多