Heim > Web-Frontend > CSS-Tutorial > Warum löst Selenium eine InvalidSelectorException mit „span:contains('Control panel')' aus?

Warum löst Selenium eine InvalidSelectorException mit „span:contains('Control panel')' aus?

Patricia Arquette
Freigeben: 2024-12-14 17:58:11
Original
601 Leute haben es durchsucht

Why Does Selenium Throw an InvalidSelectorException with

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]"
Nach dem Login kopieren

Alternativ können Sie XPath-Ausdrücke verwenden:

  • Mit „text()“:
element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
Nach dem Login kopieren
  • Verwenden „contains()“:
element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
Nach dem Login kopieren
  • Verwendung von „normalize-space()“:
element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")
Nach dem Login kopieren

Verwendung von jQuery

jQuery bietet eine Problemumgehung:

$('span:contains("Control panel")')
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage