当我尝试为模糊背景图像的点击事件运行测试时,我遇到了量角器的问题。
测试代码:
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否则。我不确定是什么造成了这种行为。
答案 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)
进行调试,以确保量角器在更改之前未获取值。
让我知道它是否有效。