XPath 中的 CSS 选择器
Posted
技术标签:
【中文标题】XPath 中的 CSS 选择器【英文标题】:CSS selector inside XPath 【发布时间】:2012-02-18 18:46:15 【问题描述】:是否可以在 XPath 中指定 CSS 选择器?本质上,我想找到同时满足.myClass div
和div[contains(., 'Hello!')]
的元素。
【问题讨论】:
【参考方案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:我希望有一个解决方案。谢谢!我已经更新了我的答案。以上是关于XPath 中的 CSS 选择器的主要内容,如果未能解决你的问题,请参考以下文章
使用 xpath 或 css 选择器解析混合移动应用程序中的所有元素