"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre InvalidSelectorException avec \"span:contains(\'String\')\" dans Selenium ?

Comment résoudre InvalidSelectorException avec \"span:contains(\'String\')\" dans Selenium ?

Publié le 2024-11-06
Parcourir:339

How to Resolve InvalidSelectorException with \

Exception SelectorException non valide dans Selenium avec "span:contains('String')"

Lors de l'utilisation de Selenium en Python avec Firefox, tentative de rechercher un élément à l'aide du sélecteur CSS "span:contains('Control panel')" peut entraîner l'erreur suivante :

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

Cette erreur indique que le CSS fourni le sélecteur n’est pas valide. Selon les problèmes n°987 et 1547, la pseudo-classe ":contains" n'est pas prise en charge par Firefox ou Chrome.

Solution :

Le " : contient" la pseudo-classe n'est pas un sélecteur CSS standard et doit être remplacée par un sélecteur d'attribut alternatif. Par exemple :

element = "span[attribute_name=attribute_value]"

Xpaths alternatifs :

Si un sélecteur d'attribut n'est pas disponible, vous pouvez utiliser l'un des XPaths suivants :

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

Alternative jQuery :

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

Remarque :

Les sélecteurs CSS ne sont pas pris en charge dans la console du navigateur, mais JQuery fournit un raccourci pour document.querySelector. En tant que tel, JQuery peut prendre en charge les sélecteurs CSS s'ils sont activés sur la page.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729259896. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3