AngularJS+;量角器在运行测试之前,等待所有ajax调用结束/完整页面加载

AngularJS+;量角器在运行测试之前,等待所有ajax调用结束/完整页面加载,angularjs,protractor,Angularjs,Protractor,是否有更好的方法等待所有页面加载 我有棱角的页面充满了承诺,这意味着如果所有Ajax调用还没有结束 屏幕上有一个加载器 我目前正在使用ptor.sleep(10000),如下例所示: beforeEach(function(){ ptor = protractor.getInstance(); driver = ptor.driver; ptor.get(base_url); ptor.sleep(10000); }); 有更好的方法吗?如果在加载开始/完成时使

是否有更好的方法等待所有页面加载

我有棱角的页面充满了承诺,这意味着如果所有Ajax调用还没有结束 屏幕上有一个加载器

我目前正在使用ptor.sleep(10000),如下例所示:

beforeEach(function(){
    ptor = protractor.getInstance();
    driver = ptor.driver;
    ptor.get(base_url);
    ptor.sleep(10000);
});

有更好的方法吗?

如果在加载开始/完成时使用
ng If
隐藏/显示内容,可以使用以下语法等待某个元素出现在页面上(即
ng If
将阻止该元素进入DOM,直到页面加载完成):


在的答案中找到了这个问题的答案:我不明白为什么会这样,如果元素不在DOM中,那么不应该
findElement
找不到它吗?ptor.findElement()会等到找到该元素后再解析它的承诺。因此,您可以被动地等待该元素出现在页面上,然后运行代码。
ptor.findElement(by.id('element-only-shown-after-loading')).then(function (myElement) {
    // Your page should be loaded at this point
});