Условный селектор транспортира - PullRequest
2 голосов
/ 27 мая 2020

Я использую 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>

Есть ли селектор по cssContainText (или какой-либо другой), в котором я могу указать условие для выбора всех элементов, кроме одного, содержащего текст «Cat»?

1 Ответ

1 голос
/ 27 мая 2020

Вы можете создать Список , выбрав все элементы, кроме одного, содержащего текст Cat , используя следующую Стратегию локатора :

  • xpath :

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

При использовании Selenium и :

Псевдокласс: contains отсутствует в CSS Spe c и не поддерживается ни Firefox, ни Chrome (даже вне WebDriver). Вы можете найти подробное обсуждение в selenium.common.exceptions.InvalidSelectorException с «span: contains ('string')»

Однако, если элементы всегда появляются внутри DOM Tree в определенном порядке c, например Cat всегда на четвертом потомке, вы также можете использовать:

  • cssSelector :

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

Ссылка

Вы можете найти пару соответствующих обсуждений в:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...