So lösen Sie eine InvalidSelectorException mit „span:contains(\'string\')\'

DDD
Freigeben: 2024-10-18 22:02:03
Original
662 Leute haben es durchsucht

How to Resolve InvalidSelectorException with

InvalidSelectorException mit „span:contains('string')“

Beim Versuch, ein Element mit dem CSS-Selektor „span:contains('Control panel') zu finden“ "Es ist eine InvalidSelectorException aufgetreten, die den Fehler anzeigt: „Der angegebene CSS-Selektorausdruck „span:contains('Control panel')“ ist ungültig“.

Wie in Problem Nr. 987 und Nr. 1547 erläutert, enthält :contains Die Pseudoklasse ist nicht in der CSS-Spezifikation enthalten und wird sowohl in Firefox als auch in Chrome nicht unterstützt. Diese Pseudoklasse war einzigartig für die von Selenium 1.0 verwendete Sizzle Selector Engine. Allerdings hat sich WebDriver gegen die Einbindung der CSS-Selektoren von Sizzle entschieden, was zu dieser Inkonsistenz führte.

Um dieses Problem effektiv zu lösen, verwenden Sie alternative Attribute des tag:

element = "span[attribute_name=attribute_value]"
Nach dem Login kopieren

Alternative Lösungen

Berücksichtigen Sie zum Auffinden des Elements mithilfe des bereitgestellten DOM-Baums die folgenden XPath-Optionen:

  • Verwenden von text():

    element = my_driver.find_element_by_xpath("//span[text()='Control panel']")
    Nach dem Login kopieren
  • Using contains():

    element = my_driver.find_element_by_xpath("//span[contains(.,'Control panel')]")
    Nach dem Login kopieren
  • Using normalize-space():

    element = my_driver.find_element_by_xpath("//span[normalize-space()='Control panel']")
    Nach dem Login kopieren

jQuery-Verwendung

Zusätzlich können Sie jQuery mit der folgenden Syntax verwenden:

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

Bemerkenswerte Beobachtung

Nach den Erkenntnissen von @FlorentB werden CSS-Selektoren von der Konsole nicht unterstützt, jQuery bietet jedoch Unterstützung. Die Syntax „$(...)“ in der Konsole stellt eine Kurzschreibweise für „document.querySelector“ dar, die bei der Aufnahme in die Seite von jQuery überschrieben wird.

Das obige ist der detaillierte Inhalt vonSo lösen Sie eine InvalidSelectorException mit „span:contains(\'string\')\'. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!