Javascript 量角器滤芯没有特定子级

Javascript 量角器滤芯没有特定子级,javascript,css,angularjs,selenium,protractor,Javascript,Css,Angularjs,Selenium,Protractor,我试图使用.filter()函数过滤掉ElementArrayFinder中的元素。我已经成功地使用它来过滤元素,检查特定的子元素是否存在,但不能做相反的事情。以下是HTML的一个片段: <div class="krn_event krn_event_line0" unselectable="on" style="position: absolute; left: 477px; top: 161px; width: 84px; height: 32px; white-space: nowr

我试图使用.filter()函数过滤掉ElementArrayFinder中的元素。我已经成功地使用它来过滤元素,检查特定的子元素是否存在,但不能做相反的事情。以下是HTML的一个片段:

<div class="krn_event krn_event_line0" unselectable="on" style="position: absolute; left: 477px; top: 161px; width: 84px; height: 32px; white-space: nowrap; overflow: hidden;">
<div unselectable="on" class="krn_event_inner">
    <div class="entity  advanced-renderer" id="shift_20111">  
        <span class="entity-title">9:00 AM - 7:00 PM</span> 
        <div class="entity-segments entity-type-shift">      
            <div class="entity-segment type-break" style="left:40%; width:5%"> </div>       
        </div>  
    </div>
</div>
其中,班次是页面上所有班次的列表。有人能给我指出正确的方向或告诉我这里出了什么问题吗?当此代码运行时,测试将等待,而整个测试将失败,并出现一个致命错误:CALL_和_RETRY_LAST Allocation failed-Javascript堆内存不足。它还提供了“最后几个地面军事系统”和JS stacktrace信息。谢谢

编辑:忘了问,这里有没有可以合并的.not()函数?我知道EC.not(),但我相信它只适用于浏览器函数。我对CSS选择器做了一些研究,并尝试使用:not(),但我无法让它工作


我有两种方法,过滤掉我不想要的元素,最终得到一个包含所有可用元素的数组。或者,为了检查我选择的元素(shift)是否有子元素,如果有,则选择不同的shift。后者似乎更难,因为很难实现带有承诺的循环。非常感谢你们提供的任何帮助。

我不是100%清楚你们想得到什么,当你们说第一个block,buy时,你们可以使用带有量角器的
:not()
css。类似于

$$('.entity-segment:not(.type-transfer');

这假设您需要多个匹配(
$
),但如果没有,请使用
$
css选择器

当你说第一个block,buy,你可以使用带有量角器的
:not()
css时,我不是100%清楚你想要得到什么。类似于

$$('.entity-segment:not(.type-transfer');

这假设您需要多个匹配(
$
),但如果没有,请使用
$
css选择器

您是否尝试过使用element.all(by.css(..)或$$('..)来代替。然后使用count()检查它是否等于0…我已尝试在筛选函数中使用.$$()和.count()而不是.isPresent(),但它返回相同的错误您可以使用xpath直接获得这些类型的移位-“//div[@class='entity-segment-type-transfer']//祖先::div[@class='krn\u event krn\u event\u line0']””我正在寻找不包含子体“.entity segment type transfer”的其他移位。xpath中是否有not()函数或其他东西可以用来选择所有不包含“.entity-segment-type-transfer”的元素?使用not-->div[@class='krn_-event-krn_-event-line0'和not(后代::div[@class='entity-segment-type-transfer'])时,您尝试过使用element.all(by.css(…)或$$('..)。然后使用count()检查它是否等于0…我已尝试在筛选函数中使用.$$()和.count()而不是.isPresent(),但它返回相同的错误您可以使用xpath直接获得这些类型的移位-“//div[@class='entity-segment-type-transfer']//祖先::div[@class='krn\u event krn\u event\u line0']””我正在寻找不包含子体“.entity segment type transfer”的其他移位。xpath中是否有not()函数或其他东西可以用来选择所有不包含“.entity segment type transfer”的对象?not-->div[@class='krn_event krn_event_line0'和not(后代::div[@class='entity-segment type transfer'])]
$$('.entity-segment:not(.type-transfer');