Selenium-Python: find_element_by_css_selector() Verwendung :enthält()

In Selen, auf Python, ich versuche ein element wählen, mit

driver = webdriver.Firefox()
driver.find_element_by_css_selector("td:contains('hello world')")

Gibt mir die Fehlermeldung:

>>>> selenium.common.exceptions.WebDriverException: Message: u'An invalid or illegal string was specified' 

Kann ich wählen Sie Elemente mit vielen verschiedenen CSS-Selektoren auf diese Weise, aber unter Verwendung von :contains() scheint immer zu werfen ist ein Fehler. HINWEIS: ich bekomme die gleiche Fehlermeldung, wenn ich versuche zu verwenden:

driver.find_element_by_xpath("//td[contains(text(),'hello world')]")

Bitte beraten. Danke!

EDIT: GELÖST!

Problem gelöst! Ich danke Ihnen so sehr für Ihre Hilfe! Ich hatte zwei bedeutende Fehler:
1.) Ich dachte,: contains() war eine anerkannte css3-Selektor (stellt sich heraus, es ist nicht Teil der aktuellen Skillung, die ist, warum ich nicht wählen diesen Weg)
2.) Die xpath-Selektor wäre gut, außer, dass ich mit einem parser, der angenommen xpath würde niemals irgendwelche Bereiche in der it, so spaltete es die Argumente durch Leerzeichen. Also, wenn ich ging in die xpath-Selektor

//td[contains(text(),'hello world']

den parser abgeschnitten wurde, es auf das Leerzeichen nach 'Hallo' also der xpath-Selektor sah aus wie

//td[contains(text(),'hello

denen deutlich würde einen Fehler auslösen. Also muss ich die Lautstärke meiner Analyse richtig zu Lesen, meine xpath-Selektor.

Nochmals vielen Dank für all Eure schnellen, hilfreichen Antworten!

  • zeigen Sie uns den html-Inhalt bitte..
  • CSS-Selektoren habe nicht alles genannt, wie contains ..
  • cssselect hat die Unterstützung für :contains() pseudo-Selektor, aber es bezieht sich auf eine frühe CSS3-Entwurf, der entfernt wurde (pythonhosted.org/cssselect/#supported-selectors). Ich bin mir nicht bewusst andere Projekte zur Unterstützung dieser pseuso-Selektor
  • das ist jQery ein - api.jquery.com/contains-selector . Selen unterstützt nicht, dass jQuery ein..
  • die contains Selektor jQuery hat, stammt eigentlich von Sizzle, nicht jQuery.
  • Nächstes mal bitte echten code zeigen!
  • Ich hätte gerne eine Karte den richtigen code, aber die Abstraktionen in den Weg kam, zu viel. Es war etwa 200 Zeilen code, die beteiligt waren, in der immer der string von der ersten Seite an die Stelle, wo Selen wurde. Es würde geschaut haben, sehr unübersichtlich.
  • dann sollten Sie machen es zu einem einfach reproduzierbaren Szenario. Wie konnten wir wissen, es war immer abgeschnitten? Sie nicht liefern uns mit dem eigentlichen XPath-Sie waren läuft.

Schreibe einen Kommentar