我正在使用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”的元素之外的所有元素?
您可以创建一个List,使用以下Locator Strategy选择除包含文本Cat的元素以外的所有元素:
xpath:
//div[@class='mainDiv']//div[@class='childDiv'][not(contains(.,'Cat'))]
:包含伪类不在CSS规范中,Firefox或Chrome(甚至在WebDriver外部)也不支持。您可以在selenium.common.exceptions.InvalidSelectorException with “span:contains('string')”
中找到详细的讨论
但是,如果元素始终以特定顺序出现在DOM Tree中,例如Cat总是在第四个孩子处,您也可以使用:
cssSelector:
div.mainDiv div.childDiv:not(:nth-child(4))
您可以在以下位置找到几个相关的讨论: