Selenium InvalidSelectorException mit „span:contains('Control panel')“
Versuch, ein Element mithilfe des CSS-Selektors „span:“ zu finden enthält('Systemsteuerung')" in Selenium Python kann zu einer InvalidSelectorException führen. Dieser Fehler tritt auf, weil die Pseudoklasse „contains“ von Firefox oder Chrome nicht erkannt wird.
Die CSS-Spezifikation enthält die Pseudoklasse „:contains“ nicht. Daher wird es von Browsern, die dem Standard entsprechen, nicht unterstützt. Darüber hinaus unterstützt WebDriver nicht die Auswahl-Engine „Sizzle“, die die Verwendung von „:contains“ in Selenium 1.0 ermöglichte.
Alternative Lösungen
Anstelle von „ :enthält", erwägen Sie die Verwendung von Attributen des Tag zur Identifizierung des Elements:
element = "span[attribute_name=attribute_value]"
Alternativ können Sie XPath-Ausdrücke verwenden:
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']")
Verwendung von jQuery
jQuery bietet eine Problemumgehung:
$('span:contains("Control panel")')
Das obige ist der detaillierte Inhalt vonWarum löst Selenium eine InvalidSelectorException mit „span:contains('Control panel')' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!