【问题标题】:How to catch ngToast messages in protractor如何在量角器中捕获 ngToast 消息
【发布时间】:2015-07-11 23:47:41
【问题描述】:

我是角度和量角器的新手。我们使用量角器进行功能测试并与詹金斯集成。

问题

在某些屏幕中,我们使用ng-toast 显示烤面包机消息(主要用于服务器响应消息,如“保存文件”等)。但量角器无法捕获这些,因为它会等待所有角度超时(包括烤面包机超时)完成。显示错误:

Timed out waiting for Protractor to synchronize with the page after 11 seconds.

我也尝试设置ignoreSynchronization

如何解决这个问题。我真的被困在这上面了..

【问题讨论】:

    标签: angularjs protractor


    【解决方案1】:

    在谷歌上长时间搜索后,我得到了答案。我们可以在需要等待烤面包机消息的测试用例中使用带有browser.wait的承诺。

            .....  
            browser.wait(function() {
                    var deferred = protractor.promise.defer();
    
                      getToaster().then(function(){
                          deferred.fulfill(true);
                          expect(getToaster().isDisplayed()).toBe(true);//and other assertions
                      });
                      return deferred.promise;
                    });
           .....
    

    这在blog 中有很好的描述 更多关于protractor.promise的细节可以在here找到

    或者我以另一种方式做到了:

     ...
        browser.manage().timeouts().implicitlyWait(10000);//set timeout for element 
         expect(toaster.getToaster().isDisplayed()).toBe(true);
         browser.manage().timeouts().implicitlyWait(1);//reset
       ....
    

    但量角器的做法是browser.waitExpectedCondition,这在protractor api 中进行了描述,包括自定义条件。我目前正在使用这种显式等待方法。

    【讨论】:

    • getToaster() 是做什么的?我一直在尝试这个,但无法让它发挥作用。
    猜你喜欢
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多