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
Freigeben: 2024-11-03 04:36:03
Original
1032 Leute haben es durchsucht

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")
Nach dem Login kopieren

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>
Nach dem Login kopieren

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()
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage