Maison >interface Web >tutoriel CSS >Pourquoi Selenium lance-t-il une InvalidSelectorException avec « span:contains('Control panel') » ?
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 :
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']")
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!