在 Python 上的 Selenium 中,我正在尝试使用
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']
解析器在 'hello' 之后的空格处被截断,所以 xpath 选择器看起来像
//td[contains(text(),'hello
这显然会引发错误。所以我需要调整我的解析以正确读取我的 xpath 选择器。
再次感谢您提供的所有快速、有用的答案!