1
是否可以在XPath中指定CSS選擇器?基本上,我想找到滿足.myClass div
和div[contains(., 'Hello!')]
的元素。XPath中的CSS選擇器
是否可以在XPath中指定CSS選擇器?基本上,我想找到滿足.myClass div
和div[contains(., 'Hello!')]
的元素。XPath中的CSS選擇器
不,您不能將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定位器。
'contains(@class,'myClass')'也匹配'AmyClassman'。最好使用'contains(concat('',@class,''),'myClass')'' –
@lwburk:我希望能找到解決方案。謝謝!我已經更新了我的答案。 – BoltClock