量角器:获取没有特定类的元素

W v*_*d L 9 angularjs-e2e protractor

我试图让e2e测试在下一个例子上工作:

HTML:

<div ng-if="selectedItem">
  <span class-"xxx">This is line 1</span>
  <span class="xxx yyy">This is line 2</span>
</div>
Run Code Online (Sandbox Code Playgroud)

量角器:

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

给出以下错误:

失败:无效的元素状态:无法在'Document'上执行'querySelectorAll':'div [ng-if ="selectedItem"] span [class!="yyy"]'不是有效的选择器.

选择器使用jQuery虽然..我知道它不一样.但我似乎无法找到如何用量角器排除一个类

ale*_*cxe 9

使用not否定伪类:

$('div[ng-if=selectedItem] span:not(.yyy)');
Run Code Online (Sandbox Code Playgroud)

或者,在您的情况下,您还可以匹配完整的class属性值:

$('div[ng-if=selectedItem] span[class=xxx]');
Run Code Online (Sandbox Code Playgroud)

或者,如果这是适用的,您还可以span通过索引获取第一个:

$$('div[ng-if=selectedItem] span.xxx').first();
Run Code Online (Sandbox Code Playgroud)

$这是一个快捷方式element(by.css()),$$- 到element.all(by.css())