【问题标题】:Protractor change rootEl after start when testing angular app测试角度应用程序时量角器在启动后更改 rootEl
【发布时间】:2016-09-29 01:10:57
【问题描述】:

我用下面的这个 conf 文件设置我的量角器:

exports.config = {
  framework: 'mocha',
  rootElement: '#container1',
  specs: ['*container1_spec.js'],
  capabilities: {
    browserName: 'chrome',
    version: '',
    platform: 'ANY'
  },
  onPrepare: function() {
    // implicit and page load timeouts
    browser.manage().timeouts().pageLoadTimeout(40000);
    browser.manage().timeouts().implicitlyWait(25000);
  }
}

应用程序是手动引导的,当应用程序将控制权转移到另一个应用程序时,我需要在一些步骤后更改根元素,方法是执行window.location.replace。启动的第二个应用程序也是一个 Angular 应用程序,它执行手动引导。

来自another thread in SO。我找到了我可以做的代码browser.rootEl = 'div#container2';

WebDriverError: unknown error: [ng:test] no injector found for element argument to getTestability
http://errors.angularjs.org/1.5.8/ng/test 

【问题讨论】:

    标签: angularjs protractor


    【解决方案1】:

    正如我在问题中提到的,更改 rootEl 不起作用。我不得不求助于 DOM 来运行测试。

    function getMessage() {
      return document.getElementById('msg').textContent;
    }
    setTimeout(function() {
      browser.executeScript(getMessage).then(function (txt) {
        chai.expect(txt).to.equal("Error occured");
        done();
      });
    }, 10000);
    

    browser.executeScript 是允许我查询 DOM 和解决方法的关键函数。我必须为延迟添加一个超时,以允许第二个应用程序下载和引导。

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      相关资源
      最近更新 更多