Zugriff auf Textelemente mit Selenium WebDriver in Python
Bei der Webautomatisierung mit Selenium WebDriver ist das Abrufen von Textinhalten aus HTML-Elementen unerlässlich. Allerdings können Probleme auftreten, wenn sich die ID des Elements beim Neuladen der Seite dynamisch ändert, wie im dargestellten Fall.
Der Originalcode
Der bereitgestellte Originalcode:
text = driver.find_element_by_class_name("current-stage").getText("my text")
versucht, ein Element anhand des Klassennamens „current-stage“ zu finden und seinen Text zu extrahieren, der voraussichtlich „mein Text“ ist.
Die HTML-Struktur
Die bereitgestellte HTML-Struktur zeigt das Textelement mit dem Klassennamen „current-text“ und einer dynamischen ID wie folgt:
<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
Das Problem
Das Problem mit dem Originalcode hängt nicht mit XPath zusammen, sondern mit dem Missbrauch der getText-Methode. Durch die Übergabe eines Arguments an getText wird versucht, den Text des Elements festzulegen, nicht abzurufen.
Der richtige Ansatz
Der richtige Ansatz zum Extrahieren des Texts aus dem Element ist um getText ohne Argumente wie folgt zu verwenden:
text = driver.find_element_by_class_name("current-stage").getText()
Dieser Code ruft den Textinhalt des Elements ab und speichert ihn in der Textvariablen.
Überprüfen des Ergebnisses
Anstatt den erwarteten Text an die getText-Methode zu übergeben, können Sie den abgerufenen Text anschließend wie folgt mit der AssertEqual-Methode überprüfen:
expected_text = "my text" actual_text = driver.find_element_by_class_name("current-stage").getText() self.assertEqual(expected_text, actual_text)
Dieser Ansatz stellt sicher, dass der abgerufene Text entspricht dem erwarteten Wert.
Das obige ist der detaillierte Inhalt vonWie rufe ich Text aus sich dynamisch ändernden HTML-Elementen in Selenium WebDriver ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!