首页 > web前端 > css教程 > 为什么 Selenium 的 `span:contains('string')` 选择器失败,如何修复?

为什么 Selenium 的 `span:contains('string')` 选择器失败,如何修复?

Patricia Arquette
发布: 2024-12-13 13:44:10
原创
230 人浏览过

Why Does Selenium's `span:contains('string')` Selector Fail, and How Can I Fix It?

Selenium: InvalidSelectorException Error with "span:contains('string')"

尝试使用带有 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")')
    登录后复制

琐事:

  • 浏览器控制台本身不支持 CSS 选择器,但 jQuery 的 $() 快捷方式支持覆盖 document.querySelector 以在 jQuery 出现时启用它们页。

以上是为什么 Selenium 的 `span:contains('string')` 选择器失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

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