量角器条件选择器

Protractor Conditional Selector

我正在使用 Selenium Protractor 并希望 select 以下列表中的所有元素,但包含文本的元素除外 "Cat",然后对其余元素执行一些操作。

<div class="mainDiv">
    <div class="childDiv">Dog</div>
    <div class="childDiv">Goat</div>
    <div class="childDiv">Bird</div>
    <div class="childDiv">Cat</div>
    <div class="childDiv">Zebra</div>
</div>

是否有 select 或 cssContainingText(或其他),我可以在其中为 select 所有元素提供条件,但包含文本 "Cat" 的元素除外?

您可以创建一个 List 选择除包含文本 Cat 之外的所有元素,使用以下 :

  • xpath:

    //div[@class='mainDiv']//div[@class='childDiv'][not(contains(.,'Cat'))]
    

使用 and 时:

The :contains pseudo-class isn't in the CSS Spec and is not supported by either Firefox or Chrome (even outside WebDriver). You can find a detailed discussion in

但是,如果元素始终以特定顺序出现在 DOM Tree 中,例如总是在第四child,你也可以使用:

  • cssSelector:

    div.mainDiv div.childDiv:not(:nth-child(4))
    

参考

您可以在以下位置找到一些相关讨论: