Selenium InvalidSelectorException with "span:contains('Control panel')"
尝试使用 CSS 选择器“span:”查找元素Selenium Python 中的 contains('Control panel')" 可能会导致 InvalidSelectorException。出现此错误的原因是 Firefox 或 Chrome 无法识别“contains”伪类。
CSS 规范不包含“:contains”伪类。因此,遵守该标准的浏览器不支持它。此外,WebDriver 不支持“Sizzle”选择器引擎,该引擎允许在 Selenium 1.0 中使用“:contains”。
替代解决方案
而不是“ :contains”,考虑使用 的属性标记来标识元素:
element = "span[attribute_name=attribute_value]"
或者,使用 XPath 表达式:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")
使用 jQuery
jQuery 提供了解决方法:
$('span:contains("Control panel")')
以上是为什么 Selenium 会抛出'span:contains('Control panel')”的 InvalidSelectorException?的详细内容。更多信息请关注PHP中文网其他相关文章!