【问题标题】:Unable to find CSS selector by :contains()无法通过 :contains() 找到 CSS 选择器
【发布时间】:2021-01-08 06:22:05
【问题描述】:

无法找到使用 :contains() 的 CSS 选择器。

我已按照https://www.browserstack.com/guide/css-selectors-in-selenium 的指示进行操作 在 #5 – 内部文本 但仍然没有显示结果,有人可以帮我/告诉我如何使用文本查找 Web 元素,仅 CSS

这里是示例 Dom

<ul id='id'>
    <li class='class'>
        <a class='class_class2' href="/Myaccount/summary">"Summary"</a>
    <li class='class'>
        <a class='class_class2' href="/Myaccount/Profile">"Profile"</a> 
</ul>

这里:a:contains('Summary')

【问题讨论】:

    标签: selenium selenium-webdriver css-selectors


    【解决方案1】:

    https://developer.mozilla.org/en-US/docs/Web/CSS/Reference

    https://stackoverflow.com/a/4781167/6793637

    包含:不再可用

    您应该使用xpath 来查找使用innerText 的元素

    xpath:
    
       //a[contains(text(),"Summary")]
    

    你可以得到完全匹配

       //a[text()="Summary"] 
    

    【讨论】:

      【解决方案2】:

      :contains 伪类不在 CSS 规范中,并且不受 Firefox 或 Chrome 支持(甚至在 WebDriver 之外)。

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


      另类

      要定位文本为 Summary 的元素,您可以使用以下任一:

      • 使用first-child:

        ul#id li:first-child > a
        
      • 使用nth-child():

        ul#id > li:nth-child(1) > a
        

      tl;博士

      参考资料:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 2012-09-03
        • 1970-01-01
        • 2019-04-30
        • 2019-12-25
        • 1970-01-01
        相关资源
        最近更新 更多