Maison >interface Web >tutoriel CSS >Pourquoi le sélecteur « span:contains('string') » de Selenium échoue-t-il et comment puis-je y remédier ?
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')"
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]"
Utilisez XPath, qui prend en charge text(), Méthodes contain() et normalize-space() :
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
Utilisez jQuery, qui prend en charge les sélecteurs CSS :
$('span:contains("Control panel")')
Anecdote :
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!