Maison >interface Web >tutoriel CSS >Pourquoi Selenium lance-t-il une InvalidSelectorException avec « span:contains('Control panel') » ?

Pourquoi Selenium lance-t-il une InvalidSelectorException avec « span:contains('Control panel') » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 17:58:11602parcourir

Why Does Selenium Throw an InvalidSelectorException with

Selenium InvalidSelectorException avec "span:contains('Control panel')"

Tentative de recherche d'un élément à l'aide du sélecteur CSS "span : contain('Control panel')" dans Selenium Python peut entraîner une InvalidSelectorException. Cette erreur se produit car la pseudo-classe "contains" n'est pas reconnue par Firefox ou Chrome.

La spécification CSS n'inclut pas la pseudo-classe ":contains". En tant que tel, il n’est pas pris en charge par les navigateurs qui adhèrent à la norme. De plus, WebDriver ne prend pas en charge le moteur de sélection "Sizzle", qui permettait l'utilisation de ":contains" dans Selenium 1.0.

Solutions alternatives

Au lieu de " :contains", envisagez d'utiliser les attributs de balise pour identifier l'élément :

element = "span[attribute_name=attribute_value]"

Vous pouvez également utiliser des expressions XPath :

  • Utiliser "text()":
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
  • Utilisation "contains()":
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
  • Utilisation de "normalize-space()":
element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")

Utilisation de jQuery

jQuery propose une solution de contournement :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn