本文介绍了量角器与递延boostrapping的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图建立终端到终端的测试我们的角度应用程序,但跨越一些障碍正在到来。

一是引导。我们使用这个库:来引导我们的应用程序。这个库使我们能够HTTP调用的结果,那么它的注入我们的应用程序(如角值())。然后,它调用引导函数实际上角度引导的应用程序。我想测试运行后,这个boostrapping就完成了。

这是我迄今所做

 描述('导航应该',函数(){
    beforeEach(函数(){
        //加载网页
        browser.get('/');
    },10000);    它('秀侧面导航',函数(){
        browser.wait(函数(){
            VAR递延= protractor.promise.defer();            元素(by.css('body.deferred-引导装载'))是present()
                。然后(功能(为present){
                    deferred.fulfill(!是present);
                });            返回deferred.promise;
        });
    });
});

该库方便地将一个延期引导加载类的体。我等待直到被删除。

问题是,有时我得到的错误错误等待量角器与网页同步:[NG:测试]没有注入发现元素参数getTestability \\ nhttp://errors.angularjs .ORG / 1.4.8 / NG /测试

这似乎更经常产生这种错误比它(测试)合格。

我不明白的问题是什么吗?是量角器角运行前有机会跑?

请问我要运行我的回调为 browser.wait 中的所有测试返回一个承诺?

此外,我想这code为每一个试运行(等待自举完成)。什么是组织最好的方法?


解决方案

我会尝试做的是关闭同步,直到预期的条件满足的:

  beforeEach(函数(){
    VAR EC = protractor.ExpectedConditions;    browser.ignoreSynchronization = TRUE;
    browser.get('/');    //等待延迟引导身体不是present
    VAR体= $(body.deferred-引导加载);
    browser.wait(EC.stalenessOf(体),10000)。然后(函数(){
        browser.ignoreSynchronization = FALSE;
    });
    browser.waitForAngular(); //可能并不需要
});


Please see:

这篇关于量角器与递延boostrapping的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-10 11:15