2016-07-25 5 views
2

私はprotractorでテストを書いていますが、目的は要素をクリックして特定のclassがあるかどうかを確認することです。問題は、私がthen()続いclick()を、使用していますが、私は次のエラーを取得していますということです。()と()が機能しない - 投機器

問題は、次のコードの塊に位置しています
Cannot read property 'getAttribute' of null 

element(by.css('#region1 polygon:first-child')).click() 
    .then(function(selected){ 
     expect(selected.getAttribute('class')).toContain('highlighted'); 
    }); 

はあなたが持っていますかどのようにこの問題を解決するためのアイデア?あなたの返信を前にありがとう!

答えて

3

click()コールバックには、要素自体が引数として含まれていません。つまり、あなたの場合のselectedは要素ではありません。

代わりに、それはステップバイステップでないとControl Flowキューが仕事をしてみましょう:

var elm = element(by.css('#region1 polygon:first-child')); 

elm.click(); 
expect(elm.getAttribute('class')).toContain('highlighted'); 

toContain()class属性値に適用する最善のマッチャーではないこと。たとえば、要素がnot-highlightedクラスを持つ場合、このテストは合格になります。それを行うには良い方法は、カスタムtoHaveClassマッチャーを導入することで、参照してください。

関連する問題