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
Mary-Kate OlsenOriginal
2024-10-18 21:58:30601Durchsuche

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')"

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>

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']")

jQuery-Alternative:

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

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!

Stellungnahme:
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