在硒對Python中,我試圖選擇在使用硒的Python:使用find_element_by_css_selector():包含()
driver = webdriver.Firefox()
driver.find_element_by_css_selector("td:contains('hello world')")
使我有錯誤的元素:
>>>> selenium.common.exceptions.WebDriverException: Message: u'An invalid or illegal string was specified'
我可以以這種方式使用許多不同的CSS選擇器來選擇元素,但使用:contains()總是會引發錯誤。注意:當我嘗試使用時出現同樣的錯誤:
driver.find_element_by_xpath("//td[contains(text(),'hello world')]")
請指教。謝謝!
編輯:求助!
問題解決!非常感謝你的幫助!我有兩個重要的錯誤: 1)我認爲:contains()是一個公認的css3選擇器(原來它不是當前規範的一部分,這就是爲什麼我不能選擇這種方式) 2) XPath選擇器應該沒問題,只是我使用了一個解析器,它假定xpath在其中永遠不會有任何空格,所以它用空格分隔參數。因此,當我在XPath選擇
//td[contains(text(),'hello world']
通過解析器在空格後截斷它「你好」這樣的XPath選擇看上去像
//td[contains(text(),'hello
這顯然會拋出一個錯誤。所以我需要調整我的解析來正確地讀取我的xpath選擇器。
再次感謝您的快速,有益的答案!
我們展示HTML內容,請.. –
[CSS選擇(http://www.w3schools.com/cssref/css_selectors.asp)不有什麼命名爲'contains' .. –
'cssselect'支持':contains()'僞選擇器,但它指的是一個早期的CSS3草稿被刪除(http://pythonhosted.org/cssselect/#supported-選擇)。我不知道其他項目支持此pseuso選擇器 –