Heim >Backend-Entwicklung >Python-Tutorial >Selenium: „get_attribute('innerHTML')` vs. „.text' – Wann sollte ich welche verwenden?
Vergleich von get_attribute("innerHTML") und .text in Selenium
Bei der Arbeit mit dem Selenium-Framework kann es vorkommen, dass Sie auf Situationen stoßen, in denen Sie dies benötigen um den Text oder innerHTML eines Elements abzurufen. Obwohl beide Methoden ähnliche Ergebnisse liefern können, sind grundlegende Unterschiede zu berücksichtigen.
get_attribute("innerHTML")
get_attribute("innerHTML") ruft das innerHTML eines ab Element. InnerHTML umfasst den Inhalt des Elements, einschließlich seiner untergeordneten Elemente. Diese Methode versucht zunächst, den Wert einer Eigenschaft mit dem angegebenen Namen zurückzugeben. Wenn die Eigenschaft nicht vorhanden ist, wird der Wert des Attributs mit demselben Namen zurückgegeben.
# Example my_text = target_element.get_attribute("innerHTML")
.text
.text ruft den Textinhalt eines ab Element. Diese Methode ignoriert alle HTML-Tags oder untergeordneten Elemente und gibt nur den sichtbaren Text zurück.
# Example my_text = target_element.text
Attribute und Eigenschaften
Um den Unterschied zwischen get_attribute("innerHTML" zu verstehen ) und .text ist es wichtig, den Unterschied zwischen Attributen und Eigenschaften in HTML und seiner DOM-Darstellung zu beachten.
Attribute werden in HTML definiert Tags und stellen zusätzliche Informationen über das Element bereit, z. B. seine ID, Klasse oder seinen Stil. Eigenschaften hingegen sind dynamisch und spiegeln den aktuellen Zustand des Elements wider.
Wenn der Browser HTML analysiert, erstellt er DOM-Objekte für Elemente. Standard-HTML-Attribute werden automatisch in DOM-Eigenschaften umgewandelt. Auf nicht standardmäßige Attribute kann jedoch weiterhin nur über die Methode getAttribute() zugegriffen werden.
Anwendungsfälle
Berücksichtigen Sie die folgenden Szenarien:
Beispiel
Angenommen, Sie haben das folgende HTML:
<body>
Verwenden von get_attribute("innerHTML") für den Text Element würde Folgendes zurückgeben:
<body>
Während die Verwendung von .text für das Body-Element Folgendes zurückgeben würde:
Welcome to Selenium! Written by John Doe
Wenn Ihr Ziel in diesem Fall darin besteht, die vollständige HTML-Struktur zu extrahieren, get_attribute („innerHTML“) wäre angebracht. Wenn Sie nur den angezeigten Text benötigen, würde .text ausreichen.
Das obige ist der detaillierte Inhalt vonSelenium: „get_attribute('innerHTML')` vs. „.text' – Wann sollte ich welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!