Heim > Artikel > Backend-Entwicklung > Wie gehe ich mit „Selenium.common.Exceptions.InvalidSelectorException' mit „span:contains(\'string\')\' in Selenium Python Firefox um?
Fehler: „Selenium.common.Exceptions.InvalidSelectorException“ mit „span:contains('string')“ in Selenium Python Firefox
Wenn Sie versuchen, ein Element mithilfe von CSS-Selektoren mit der Funktion „enthält“ zu finden, z. B. „span:contains('Control panel')“, kann die folgende Fehlermeldung auftreten:
selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "span:contains('Control panel')" is invalid: InvalidSelectorError: 'span:contains('Control panel')' is not a valid selector: "span:contains('Control panel')"
Erklärung :
Dieser Fehler tritt auf, weil die Pseudoklasse „:contains“ in nativen CSS-Selektoren von Firefox oder Chrome nicht unterstützt wird. Es wurde zuvor in der Sizzle Selector Engine verwendet, auf die sich Selenium 1.0 stützte, wurde jedoch aufgrund von Inkonsistenzen zwischen den Browsern in WebDriver gelöscht.
Lösung 1: Andere CSS-Attribute verwenden
Anstatt die Pseudoklasse „:contains“ zu verwenden, suchen Sie nach dem Element mithilfe eines anderen CSS-Attributs, z. B. Klasse, ID oder anderen identifizierenden Eigenschaften. Zum Beispiel:
element = "span[attribute_name=attribute_value]"
Lösung 2: XPath verwenden
XPath unterstützt die Pseudoklasse „:contains“, sodass Sie sie zum Auffinden des Elements verwenden können:
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']")
Lösung 3: Verwenden Sie jQuery
Alternativ können Sie jQuery verwenden, um die zu finden Element mit der Funktion „enthält“:
$('span:contains("Control panel")')
Das obige ist der detaillierte Inhalt vonWie gehe ich mit „Selenium.common.Exceptions.InvalidSelectorException' mit „span:contains(\'string\')\' in Selenium Python Firefox um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!