量角器条件选择器

问题描述 投票:2回答:1

我正在使用Selenium Protractor,并且要从下面的列表中选择所有元素,除了包含文本“ 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>

cssContainingText是否有选择器(或其他选择器),在其中我可以给一个条件以选择除包含文本“ Cat”的元素之外的所有元素?

selenium xpath css-selectors protractor e2e-testing
1个回答
1
投票

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

  • xpath

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

使用Selenium时:

:包含伪类不在CSS规范中,Firefox或Chrome(甚至在WebDriver外部)也不支持。您可以在selenium.common.exceptions.InvalidSelectorException with “span:contains('string')”

中找到详细的讨论

但是,如果元素始终以特定顺序出现在DOM Tree中,例如Cat总是在第四个孩子处,您也可以使用:

  • cssSelector

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

参考

您可以在以下位置找到几个相关的讨论:

© www.soinside.com 2019 - 2024. All rights reserved.