2012-01-25 124 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