2012-01-25 86 views

回答

3

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

您只能将CSS选择器合并到XPath 中作为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定位器。

+0

'contains(@class,'myClass')'也匹配'AmyClassman'。最好使用'contains(concat('',@class,''),'myClass')'' –

+0

@lwburk:我希望能找到解决方案。谢谢!我已经更新了我的答案。 – BoltClock