«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как разрешить InvalidSelectorException с помощью «span:contains(\'String\')» в Selenium?

Как разрешить InvalidSelectorException с помощью «span:contains(\'String\')» в Selenium?

Опубликовано 6 ноября 2024 г.
Просматривать:749

How to Resolve InvalidSelectorException with \

Недопустимое исключение SelectorException в Selenium с «span:contains('String')»

При использовании Selenium в Python с Firefox, попытка поиск элемента с помощью селектора CSS «span:contains('Панель управления')» может привести к следующей ошибке:

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, псевдокласс «:contains» не поддерживается Firefox или Chrome.

Решение:

The ": Псевдокласс contains» не является стандартным селектором CSS и его следует заменить альтернативным селектором атрибутов. Например:

element = "span[attribute_name=attribute_value]"

Альтернативные XPath:

Если селектор атрибута не доступно, вы можете использовать один из следующих 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:

$('span:contains("Control panel")')

Примечание:

Селекторы CSS не поддерживаются в консоли браузера, но JQuery предоставляет ярлык для документ.запросселектор. Таким образом, JQuery может поддерживать селекторы CSS, если они включены на странице.

Заявление о выпуске Эта статья перепечатана по адресу: 1729259896. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3