673 Stimmen

HTML-Quelle von WebElement in Selenium WebDriver mit Python abrufen

Ich verwende die Python-Bindungen zum Ausführen von Selenium WebDriver:

from selenium import webdriver
wd = webdriver.Firefox()

Ich weiß, dass ich ein Webelement wie folgt greifen kann:

elem = wd.find_element_by_css_selector('#my-id')

Und ich weiß, dass ich die volle Seitenquelle mit...

wd.page_source

Aber gibt es eine Möglichkeit, die "Elementquelle" zu erhalten?

elem.source   # <-- returns the HTML as a string

Die Selenium WebDriver-Dokumentation für Python ist im Grunde genommen nicht vorhanden, und ich sehe im Code nichts, was diese Funktionalität zu ermöglichen scheint.

Wie kann man am besten auf den HTML-Code eines Elements (und seiner Kinder) zugreifen?

12 Stimmen

Sie könnten auch einfach alle wd.page_source mit beautifulsoup

0 Stimmen

Selen hat mehr Möglichkeiten als eine schöne Suppe.

0voto

StanleyD Punkte 2168

Wenn Sie an einer Lösung interessiert sind für Selenium-Fernbedienung in Python, hier ist, wie man innerHTML zu erhalten:

innerHTML = sel.get_eval("window.document.getElementById('prodid').innerHTML")

-1voto

Zorgijs Punkte 29

Und in PHPUnit Beim Selenium-Test ist es so:

$text = $this->byCssSelector('.some-class-nmae')->attribute('innerHTML');

-1voto

Ilya Punkte 9
WebElement element = driver.findElement(By.id("foo"));
String contents = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML;", element); 

Dieser Code funktioniert auch, um JavaScript aus dem Quellcode zu holen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X