XPath 中的 CSS 选择器

Ran*_*lue 2 css xpath css-selectors

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

Bol*_*ock 5

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

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

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

当然,这取决于您可以使用 CSS 选择器或 XPath 完成什么任务。例如,如果:contains()伪类没有从 CSS3 中删除,您也可以使用这个 CSS 选择器:

.myClass div:contains('Hello!')
Run Code Online (Sandbox Code Playgroud)

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