在 Firefox 中使用 Python 中的 Selenium 时,尝试使用 CSS 选择器“span:contains('Control panel')”查找元素可能会导致以下错误:
selenium.common.exceptions.InvalidSelectorException: Given css selector expression "span:contains('Control panel')" is invalid: InvalidSelectorError: 'span:contains('Control panel')' is not a valid selector: "span:contains('Control panel')"
此错误表示提供的 CSS 选择器无效。根据 Issue#987 和 Issue#1547,Firefox 或 Chrome 不支持“:contains”伪类。
“:contains”伪类不是标准 CSS 选择器,应替换为替代属性选择器。例如:
<code class="python">element = "span[attribute_name=attribute_value]"</code>
如果属性选择器不可用,您可以使用以下 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']")
<code class="javascript">$('span:contains("Control panel")')</code>
CSS 选择器不受支持浏览器控制台,但 JQuery 提供了 document.querySelector 的快捷方式。因此,如果页面上启用了 CSS 选择器,JQuery 可能会支持 CSS 选择器。
以上是如何在 Selenium 中使用 \'span:contains(\'String\')\' 解决 InvalidSelectorException?的详细内容。更多信息请关注PHP中文网其他相关文章!