2016-01-26 18 views
7

イム次の例で動作するようにE2Eテストを取得しよう:分度器は:特定のクラスをしていない要素を取得

HTML:

<div ng-if="selectedItem"> 
    <span class-"xxx">This is line 1</span> 
    <span class="xxx yyy">This is line 2</span> 
</div> 

分度器:

.. 
element.findByCss('div[ng-if="selectedItem"] span[class!="yyy"]'); 
.. 

次のエラーが発生します。

Failed: invalid element state: Failed to execute 'querySelectorAll' on 'Document': 'div[ng-if="selectedItem"] span[class!="yyy"]' is not a valid selector.

セレクタはjQueryと一緒に動作します。私は同じではないことを知っています。しかし、私は

答えて

7

not否定擬似クラスを使用して分度器を持つクラスを除外する方法を見つけるように見えるカント:

$('div[ng-if=selectedItem] span:not(.yyy)'); 

それとも、あなたのケースでは、あなたはまた、完全なclass属性値と一致することができます

$('div[ng-if=selectedItem] span[class=xxx]'); 

それとも、これが適用されている場合は、インデックスで最初spanを取得することができます:

$$('div[ng-if=selectedItem] span.xxx').first(); 

へ - ここ

$element(by.css())へのショートカット、$$です