在测试角度app时,量角器在启动后更改rootEl

时间:2016-09-28 00:14:07

标签: angularjs protractor

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

[[], [], [], [], [], [], [], [], [], []]
[[], [], [], [], [], [], [], [], [], []]
[[], [], [], [], [], [], [], [], [], []]
True
True
True
[[], [6], [], [], [], [], [], [], [], []]
[[], [6], [], [], [], [], [], [], [], []]
[[6], [6], [6], [6], [6], [6], [6], [6], [6], [6]]
True
False
False

应用程序是以角度手动引导的,我需要在应用程序通过执行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); } } 将控件转移到另一个应用程序的某些步骤后更改根元素。启动的第二个应用程序也是一个角度应用程序,它可以进行手动引导。

来自another thread in SO。我找到了我可以做的代码window.location.replace

browser.rootEl = 'div#container2';

1 个答案:

答案 0 :(得分: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和解决方法的关键功能。我不得不为滞后添加超时,以允许第二个应用程序下载和引导。