【问题标题】:Protractor Conditional Selector量角器条件选择器
【发布时间】:2020-09-14 12:34:09
【问题描述】:

我正在使用 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】:

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

    • xpath:

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

    使用Selenium 和 时:

    :contains 伪类不在 CSS 规范中,并且不受 Firefox 或 Chrome 支持(甚至在 WebDriver 之外)。详细讨论可以在selenium.common.exceptions.InvalidSelectorException with “span:contains('string')”

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

    • cssSelector:

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

    参考

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

    【讨论】:

    • 感谢您的解决方案。上一个使用 xpath 为我工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多