一尘不染

带有“ span:contains('string')”的selenium.common.exceptions.InvalidSelectorException

selenium

我正在使用Firefox中的Selenium python。我正在尝试通过CSS选择器查找元素

element = "span:contains('Control panel')"
my_driver.find_element_by_css_selector(element)

我低于错误

 raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('Control panel')" is invalid: InvalidSelectorError: 'span:contains('Control panel')' is not a valid selector: "span:contains('Control panel')"

在Selenium IDE中,我可以通过此字段成功找到元素,但是在Python中,它不起作用


阅读 356

收藏
2020-06-26

共1个答案

一尘不染

css_selectorSelenium不支持使用按文本定位元素(尽管它可以在开发人员工具控制台中使用)。唯一的可能性是xpath

element = "//span[contains(text(), 'Control panel')]"
my_driver.find_element_by_xpath(element)

编辑:@FlorentB的评论:

css selector控制台也不支持A
,但是JQuery支持它。$('...')控制台中的from是该页面的缩写,document.querySelector通常会被JQuery覆盖。

2020-06-26