"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo resolver InvalidSelectorException con \"span:contains(\'String\')\" en Selenium?

¿Cómo resolver InvalidSelectorException con \"span:contains(\'String\')\" en Selenium?

Publicado el 2024-11-06
Navegar:908

How to Resolve InvalidSelectorException with \

SelectorException no válida en Selenium con "span:contains('String')"

Al usar Selenium en Python con Firefox, al intentar encontrar un elemento usando el selector CSS "span:contains('Control panel')" puede generar el siguiente error:

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')"

Este error indica que el CSS proporcionado El selector no es válido. Según el número 987 y el número 1547, la pseudoclase ":contains" no es compatible con Firefox o Chrome.

Solución:

El ": contiene" pseudoclase no es un selector CSS estándar y debe reemplazarse con un selector de atributos alternativo. Por ejemplo:

element = "span[attribute_name=attribute_value]"

Xpaths alternativos:

Si un selector de atributos no está disponible, puede utilizar uno de los siguientes 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']")

Alternativa jQuery:

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

Nota:

Los selectores CSS no son compatibles con la consola del navegador, pero JQuery proporciona un acceso directo para documento.querySelector. Como tal, JQuery puede admitir selectores de CSS si está habilitado en la página.

Declaración de liberación Este artículo se reimprime en: 1729259896 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3