Heim > Backend-Entwicklung > Python-Tutorial > Wie löse ich eine InvalidSelectorException mit „span:contains(\'String\')\' in Selenium?

Wie löse ich eine InvalidSelectorException mit „span:contains(\'String\')\' in Selenium?

Mary-Kate Olsen
Freigeben: 2024-10-18 21:58:30
Original
600 Leute haben es durchsucht

How to Resolve InvalidSelectorException with

Ungültige SelectorException in Selenium mit „span:contains('String')“

Bei Verwendung von Selenium in Python mit Firefox, Der Versuch, ein Element mithilfe des CSS-Selektors „span:contains('Control panel')“ zu finden, kann zu folgendem Fehler führen:

selenium.common.exceptions.InvalidSelectorException: Given css selector expression "span:contains('Control panel')" is invalid: InvalidSelectorError: 'span:contains('Control panel')' is not a valid selector: "span:contains('Control panel')"
Nach dem Login kopieren

Dieser Fehler weist darauf hin, dass der bereitgestellte CSS-Selektor ungültig ist. Laut Issue#987 und Issue#1547 wird die Pseudoklasse „:contains“ von Firefox oder Chrome nicht unterstützt.

Lösung:

Die Die Pseudoklasse „:contains“ ist kein Standard-CSS-Selektor und sollte durch einen alternativen Attributselektor ersetzt werden. Zum Beispiel:

<code class="python">element = "span[attribute_name=attribute_value]"</code>
Nach dem Login kopieren

Alternative XPaths:

Wenn kein Attributselektor verfügbar ist, können Sie einen der folgenden XPaths 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']")
Nach dem Login kopieren

jQuery-Alternative:

<code class="javascript">$('span:contains("Control panel")')</code>
Nach dem Login kopieren

Hinweis:

CSS-Selektoren werden in nicht unterstützt die Browserkonsole, aber JQuery bietet eine Verknüpfung für document.querySelector. Daher unterstützt JQuery möglicherweise CSS-Selektoren, wenn diese auf der Seite aktiviert sind.

Das obige ist der detaillierte Inhalt vonWie löse ich eine InvalidSelectorException mit „span:contains(\'String\')\' in Selenium?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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