我想查询特定元素。Angularjs量角器:排除嵌套元素的有效选择器
我的代码结构如下:
HTML
<ul class="main">
<li>...</li>
<li>...</li>
<li>
<ul class="to--exclude">
<li>...</li>
<li>...</li>
</ul>
</li>
<li>...</li>
...
</ul>
我想测试的主要class but not for
李的which are inside
到exclude`类中li's
存在。
问题是如果我使用element(by.css('.main li'))
,它会找到所有li's
,包括to-exclude
类中的那些。
在Chrome的开发者工具,我能够找到他们究竟使用jQuery的:not
或.not()
。虽然在量角器使用它作为
element(by.css('.main li').not('ul.to--exclude li'));
// OR
element(by.css(".main li:not('ul.to--exclude li')"));
上述代码
$('.main li').not('ul.to--exclude li')
// OR
$(".main li:not('ul.to-exclude li')");
给出一个错误:
InvalidElementStateError: invalid element state: Failed to execute 'querySelectorAll' on 'Document': '.main li:not('ul.to--exclude li')' is not a valid selector.
如何完成在量角器相同。如何排除嵌套在父定位器类中的一些类。
感谢
jQuery的':不()'是从不同的CSS ':not()' - 参见[为什么我的jQuery:not()选择器不能在CSS中工作?](http://stackoverflow.com/questions/10711730/why-is-my-jquery-not-selector-not -css) – BoltClock
还要注意你的HTML是无效的,你不能直接在'ul'中有'ul'。为了嵌套列表,你必须在'li'中包含'ul'。 – BoltClock