2016-05-28 18 views
1

中)(by.css要素を待っている私は$scope.$broadcastは私の指示に私のコントローラ分度器

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

コードでelement.addClass()

コードを実行し、イベントをトリガするにはいくつかのコードを持っている

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

私はを待ちます。イベントが発生し、element.addClassがmで実行されるまで、を待ちます。どのように私はから.activateを表示クラスを持つ要素のためのを待つ

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

は、しかし、私は次のエラー

TypeError: Cannot read property 'getWebElements' of undefined

を取得使用してyの分度器テスト??

elementはランダムな可視要素ですが、クラスを設定するだけです。また、私が実際のWebブラウザでプロジェクトを実行する場合、....すべて正常に実行されます。

答えて

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')