【问题标题】:CSS selector inside XPathXPath 中的 CSS 选择器
【发布时间】:2012-02-18 18:46:15
【问题描述】:

是否可以在 XPath 中指定 CSS 选择器?本质上,我想找到同时满足.myClass divdiv[contains(., 'Hello!')] 的元素。

【问题讨论】:

    标签: css xpath css-selectors


    【解决方案1】:

    不,您不能将 CSS 选择器语法和 XPath 语法组合成一个表达式。两种语言都没有任何功能可以让您从另一种语言中获取表达式。

    您只能将 CSS 选择器合并到 XPath as XPath 中,这意味着您需要自己翻译它。在您的情况下,这是生成的 XPath 表达式:

    //*[contains(concat('', @class, ''), 'myClass')]//div[contains(., 'Hello!')]

    当然,这取决于您可以使用 CSS 选择器或 XPath 完成什么。例如,if the :contains() pseudo-class hadn't been dropped from CSS3,您也可以使用这个 CSS 选择器:

    .myClass div:contains('Hello!')
    

    但它已从规范中删除,因此您只能将其用作 jQuery 选择器或 Selenium CSS 定位器。

    【讨论】:

    • contains(@class, 'myClass') 也匹配 AmyClassman。最好使用contains(concat(' ', @class, ' '), ' myClass ')之类的东西
    • @lwburk:我希望有一个解决方案。谢谢!我已经更新了我的答案。
    猜你喜欢
    • 2010-12-26
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2020-05-12
    • 2014-09-01
    • 2013-06-21
    • 2020-04-23
    相关资源
    最近更新 更多