angularjs - Protractor 从 dom 中移除元素

标签 angularjs dom testing protractor e2e-testing

由于我们使用的模板有一种奇怪(而且不太酷)的行为,我被困在 Protractor 测试中。

在页面加载时,模板有覆盖层,将在 1 秒后以这种方式隐藏:

$(document).ready(function(config){
    setTimeout(function(){
       $('.page-loading-overlay').addClass('loaded');
       $('.load_circle_wrapper').addClass('loaded');
    },1000);
});

*这让我觉得很糟糕(不想对此发表评论)

无论如何,我的测试失败了,因为它们运行的​​速度超过一秒,并且抛出了这个错误:

UnknownError: unknown error: Element is not clickable at point (463, 625). Other element would receive the click: <div class="page-loading-overlay loaded">...</div>

因为显然是接收点击的叠加层。

我在测试中找到了一个设置超时的解决方法,但这确实会减慢我的套件和 CI/CD 进程。并且让测试代码变得凌乱。

代码如下:

it('should test something', function(){
    setTimeout(function(){
        // test code
    }, 1000);
});

我想知道是否有任何方法可以从 beforeEach 语句中的 DOM 中删除一个元素,以完全删除叠加层,因为我不想测试它,我也不担心如果它坏了。

有什么建议吗?

最佳答案

您可以使用 browser.executeScript在浏览器上下文中执行一些代码:

beforeEach(function() {
  browser.executeScript("$('.page-loading-overlay').remove();");
});

关于angularjs - Protractor 从 dom 中移除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30256840/

相关文章:

javascript - 带过滤器的 Angular 自动完成:search

javascript - AngularJS:如何在加载时启动 ng-click

javascript - AngularJS $state 使用 ctrl + 单击在新选项卡中打开链接

javascript - Protractor 场景的写法

javascript - Webpack Dev Server 代理不会重定向到 api 后端

javascript - CSS不透明度动画改变位置?

javascript - 在 React 中使用多个选项从 <select> 中检索值

javascript - 有没有办法检测何时要从 DOM 中删除 DOM 节点?

iOS 测试 : Issues with UITextField testing with KIF

c# - FakeItEasy - 检索伪造的对象