teo*_*one 1 testing dom angularjs protractor e2e-testing
因为我们正在使用的模板有一种奇怪的(而不是很酷的)行为,所以我一直坚持使用量角器进行测试.
在页面加载时,模板具有覆盖层,这将在1秒后以这种方式隐藏:
$(document).ready(function(config){
setTimeout(function(){
$('.page-loading-overlay').addClass('loaded');
$('.load_circle_wrapper').addClass('loaded');
},1000);
});
Run Code Online (Sandbox Code Playgroud)
*这对我来说太可怕了(不想对此发表评论)
无论如何,我的测试因为运行速度超过一秒而被打破,他们抛出了这个错误:
UnknownError: unknown error: Element is not clickable at point (463, 625). Other element would receive the click: <div class="page-loading-overlay loaded">...</div>
Run Code Online (Sandbox Code Playgroud)
因为显然是接收点击的叠加层.
我发现在测试中设置超时的解决方法,但这确实会减慢我的套件和CI/CD进程.并使测试代码混乱.
这是代码:
it('should test something', function(){
setTimeout(function(){
// test code
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何方法可以从beforeEach语句中删除DOM中的元素,以完全删除叠加层,因为我不想测试它,我不担心它是否破坏了.
有什么建议吗?
您可以使用browser.executeScript在浏览器的上下文中执行一些代码:
beforeEach(function() {
browser.executeScript("$('.page-loading-overlay').remove();");
});
Run Code Online (Sandbox Code Playgroud)