尝试使用带有 span:contains('string' 的 CSS 选择器查找元素时)在Python Selenium for Firefox中,你可能会遇到错误:
selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('string')" is invalid: InvalidSelectorError: 'span:contains('string')' is not a valid selector: "span:contains('string')"
这个问题出现这个问题是因为 CSS 规范不支持 :contains 伪类,Firefox 或 Chrome 本身也不支持。它是 Selenium 1.0 Sizzle 选择器引擎独有的,但 WebDriver 不支持此类选择器。
替代解决方案:
使用属性选择器:
element = "span[attribute_name=attribute_value]"
使用XPath,它支持text()、contains()和normalize-space()方法:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
使用支持CSS的jQuery选择器:
$('span:contains("Control panel")')
琐事:
以上是为什么 Selenium 的 `span:contains('string')` 选择器失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!