Heim >Backend-Entwicklung >Python-Tutorial >Wie rufe ich Text aus sich dynamisch ändernden HTML-Elementen in Selenium WebDriver ab?

Wie rufe ich Text aus sich dynamisch ändernden HTML-Elementen in Selenium WebDriver ab?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 04:36:031050Durchsuche

How to Retrieve Text from Dynamically Changing HTML Elements in Selenium WebDriver?

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!

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