量角器模糊测试失败(AngularJS)

时间:2014-04-17 16:18:21

标签: angularjs webkit protractor

当我尝试为模糊背景图像的点击事件运行测试时,我遇到了量角器的问题。

测试代码:

describe('homepage background', function(){

  it('should blur on click', function(){
    var searchBox = element(by.id("inputAnimation"));

    searchBox.click().then(function(){
      var background = element(by.id("carousel-background"));
      expect(background.getCssValue('-webkit-filter')).toEqual('blur(8px)');
    });
  });

});

我收到此错误:

Expected 'blur(16px)' to equal 'blur(8px)'.

css:

.header-section {
    .background-container {
        height:inherit; background-color: @darkgray;
        .sp-img-dyn, .sp-img {
            overflow:hidden; width:100%; background-position:center top; background-size:cover;
            &.blurred { overflow:hidden; -webkit-filter:blur(8px); }
        }
        .sp-img-dyn { max-width:1920px; height:100%; margin:0 auto; }
        .sp-img { height: 300px; }
    }
}

我在Chrome中检查过,计算出来的css说它是blur(16px)。我不确定这个bug的来源。任何指针都会受到赞赏。

更新:我刚刚发现如果我专注于执行测试的chrome窗口,测试只会成功。它说16px否则。我不确定是什么造成了这种行为。

1 个答案:

答案 0 :(得分:0)

尝试等到值改变:

var searchBox = $('#carousel-background');
searchBox.click();
browser.wait(function(){
  return searchBox.getCssValue('-webkit-filter').then(function(filterVal){
    // Wait until this becomes true.
    return filterVal === 'blur(16px)'
  });
});

您可以在单击后使用browser.sleep(milliseconds)进行调试,以确保量角器在更改之前未获取值。

让我知道它是否有效。