Maison > interface Web > tutoriel CSS > Pourquoi le sélecteur « span:contains('string') » de Selenium échoue-t-il et comment puis-je y remédier ?

Pourquoi le sélecteur « span:contains('string') » de Selenium échoue-t-il et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2024-12-13 13:44:10
original
216 Les gens l'ont consulté

Why Does Selenium's `span:contains('string')` Selector Fail, and How Can I Fix It?

Selenium : erreur InvalidSelectorException avec "span:contains('string')"

Lors de la tentative de recherche d'un élément à l'aide du sélecteur CSS avec span:contains('string' ) dans Python Selenium pour Firefox, vous pouvez rencontrer l'erreur :

selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('string')" is invalid: InvalidSelectorError: 'span:contains('string')' is not a valid selector: "span:contains('string')"
Copier après la connexion

Ce problème se produit car le :contains pseudo-class n'est pas pris en charge par les spécifications CSS ni nativement par Firefox ou Chrome. Il était exclusif au moteur de sélection Selenium 1.0 Sizzle, mais WebDriver ne prend pas en charge de tels sélecteurs.

Solutions alternatives :

  • Utilisez des sélecteurs d'attribut :

    element = "span[attribute_name=attribute_value]"
    Copier après la connexion
  • Utilisez XPath, qui prend en charge text(), Méthodes contain() et normalize-space() :

    element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
    Copier après la connexion
  • Utilisez jQuery, qui prend en charge les sélecteurs CSS :

    $('span:contains("Control panel")')
    Copier après la connexion

Anecdote :

  • Les sélecteurs CSS ne sont pas pris en charge nativement dans les consoles des navigateurs, mais le raccourci $() de jQuery remplace document.querySelector pour permettre leur utilisation lorsque jQuery est présent sur la page.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal