Heim >Backend-Entwicklung >Python-Tutorial >Wie löse ich eine InvalidSelectorException mit „span:contains(\'String\')\' in Selenium?
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.
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>
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']")
<code class="javascript">$('span:contains("Control panel")')</code>
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!