Heim >Web-Frontend >CSS-Tutorial >Warum schlägt der Selenium-Selektor „span:contains('string')' fehl und wie kann ich das Problem beheben?
Beim Versuch, ein Element mithilfe eines CSS-Selektors mit span:contains('string') zu finden ) in Python Selenium für Firefox tritt möglicherweise der Fehler auf:
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')"
Dieses Problem tritt auf, weil die :contains Pseudo-Klasse wird weder von CSS-Spezifikationen noch nativ von Firefox oder Chrome unterstützt. Es war exklusiv für die Selenium 1.0 Sizzle Selector Engine, aber WebDriver unterstützt solche Selektoren nicht.
Alternative Lösungen:
Attributselektoren verwenden:
element = "span[attribute_name=attribute_value]"
Verwenden Sie XPath, das unterstützt Methoden „text()“, „contains()“ und „normalize-space()“:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
Verwenden Sie jQuery, das CSS-Selektoren unterstützt:
$('span:contains("Control panel")')
Wissenswertes:
Das obige ist der detaillierte Inhalt vonWarum schlägt der Selenium-Selektor „span:contains('string')' fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!