如何在量角器

时间:2015-05-02 05:32:50

标签: angularjs protractor

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

问题

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

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

我也尝试设置ignoreSynchronization

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

1 个答案:

答案 0 :(得分:2)

经过长时间搜索谷歌我得到了答案。我们可以在需要等待烤面包机消息的测试案例中使用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.wait ExpectedCondition <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"/> protractor api中包含自定义条件。我正在使用这种明确的等待方法。