量角器在All和beforeEach之前不能很好地同步

时间:2016-11-22 22:26:45

标签: angularjs synchronization protractor angularjs-e2e e2e-testing

错误报告

  • 节点版本:v6.9.1
  • 量角器版本:4.0.11
  • Angular Version:1.5.6
  • 浏览器:chrome
  • 操作系统和版本mac osx

代码

beforeAll(function(){
  browser2=browser.forkNewDriverInstance();
  return user.login(browser2);
});

beforeEach(function(){
  return browser2.get('/other-page');
});

和user.login()是:

User.prototype.login=function(browserToUse){
  browser.runLogin()
    .then(function(){ // after login it goes to /home
      return browserToUse.wait(EC.urlContains('/home'), 5000*2,'Waiting ofr URL /home');
    });
}

问题

它以错误的顺序执行指令;顺序是:

  1. user.login(b)中
  2. browser2.get(' /其它页面&#39)
  3. browserToUse.wait(EC.urlContains(' / home'),5000 * 2,'等待网址/主页');
  4. 实际上,第3条指令会生成超时异常。

    这似乎是同步的问题。

    问题

    调试它的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

更新此StackOverflow问题。这是Protractor的一个问题,应该在下一个版本中修复。出于澄清目的,此处的问题是ExpectedConditions目前不适用于分叉浏览器实例。

查看有关此问题的完整讨论:https://github.com/angular/protractor/issues/3761

用于解决问题的拉取请求:https://github.com/angular/protractor/pull/3766