【问题标题】:Waiting for element by.css() in protractor在量角器中等待元素 by.css()
【发布时间】:2016-05-28 12:34:22
【问题描述】:

我有一些代码,其中$scope.$broadcast 触发了一个执行element.addClass() 的事件

我的控制器中的代码

ctrlr.rollDice = function(){
 .... do some stuff 
 $scope.$broadcast('eventType', args);
}

我的指令中的代码

scope.$on('eventType', function(){ element.addClass('class'); });

我正在尝试等待,直到事件触发并且element.addClass 在我的量角器测试中使用

browser.wait(element(by.css('.activate')).isPresent,15000).then(function(isPresent){
      expect(isPresent).toBe(true);
    });

但是,我收到以下错误

TypeError:无法读取未定义的属性“getWebElements”

我如何等待.activate的元素显示??

注意element 可以是任何随机可见元素...只是设置类。此外,如果我要在我的实际 Web 浏览器中运行该项目......一切都会成功运行。

【问题讨论】:

    标签: angularjs unit-testing protractor


    【解决方案1】:

    试试这个:

    browser.wait(() => $('.activate')).isPresent() ,15000);
    expect($('.activate').isPresent()).toBe(true);
    

    或者 ES5 版本

    browser.wait(function() {
      return $('.activate').isPresent();
    }, 15000);
    expect($('.activate').isPresent()).toBe(true);
    

    注意:element(by.css('.abc')) === $('.abc')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      相关资源
      最近更新 更多