我有一些代码,其中$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浏览器中运行该项目......一切都运行成功。
答案 0 :(得分:2)
试试这个:
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')