首页 > web前端 > css教程 > 为什么 Selenium 会抛出'span:contains('Control panel')”的 InvalidSelectorException?

为什么 Selenium 会抛出'span:contains('Control panel')”的 InvalidSelectorException?

Patricia Arquette
发布: 2024-12-14 17:58:11
原创
601 人浏览过

Why Does Selenium Throw an InvalidSelectorException with

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 表达式:

  • 使用 "text()":
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
登录后复制
  • 使用"contains()":
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
登录后复制
  • 使用 "normalize-space()":
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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板