【问题标题】:How to exclude particular class/atrribute name in CSS selector in Selenium Automation?如何在 Selenium Automation 的 CSS 选择器中排除特定的类/属性名称?
【发布时间】:2019-10-31 16:19:26
【问题描述】:

我有以下 HTML 示例代码:

<a href="" title="Design" class="reMode_design  reMode_hover">
    <span>Design</span>
</a>

<a href="" title="Design" 
 class="reMode_design  reMode_hover reMode_selected">
    <span>Design</span>
</a>

在这里,我需要为第一个 href 元素定义 CSS,并希望忽略具有此类“reMode_selected”的第二个元素。如何通过忽略第二个元素为第一个元素定义css???

我不想使用 Xpath,我正在寻找如下 CSS 选择器:

element :fld_link, "[title='Design'] [class !='reMode_selected']"

此格式不适用于 SitePrism Cucumber。需要有关如何在 CSS 选择器中排除属性名称的帮助...

【问题讨论】:

    标签: ruby selenium selenium-webdriver cucumber capybara


    【解决方案1】:

    您可以通过cssSelector 做到这一点

    driver.find_element(:css,".reMode_design:not(.reMode_selected)")
    

    【讨论】:

    • 我还没有尝试过该代码。但如果可行,我会让你知道并接受答案。谢谢
    【解决方案2】:

    你可以用这个css定位器a[title='Design']:not([class*='reMode_selected'])

    【讨论】:

      【解决方案3】:

      您是否尝试过使用 xpath 来定位元素?也许像://a[contains(@title, 'Design') and not(contains(@class, 'reMode_selected'))]

      参考/示例:

      Using not in xpath

      Using and in xpath

      【讨论】:

      • 我不想使用 xpath。我忘了提。如果有什么办法我可以使用 css 代替你给定的 xpath ???
      【解决方案4】:

      您可以像其他人提到的那样使用not: css 前缀,或者您可以结合水豚查询以根据其文本返回元素,或使用服务员。

      SitePrism 非常先进,因此几乎所有选项都对您开放

      【讨论】:

        猜你喜欢
        • 2013-04-18
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 2016-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多