使用Python在Selenium WebDriver中获取WebElement的HTML源代码

我正在使用Python绑定来运行Selenium WebDriver。

from selenium import webdriver
wd = webdriver.Firefox()

我知道我可以像这样抓住一个webelement ...

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

我知道我可以得到整个页面的源代码...

wd.page_source

但无论如何要获得“元素来源”?

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

用于Python的selenium webdriver文档基本上不存在,并且在代码中看不到任何东西可以启用该功能。

有关访问元素(及其子元素)的HTML的最佳方法的任何想法?


您可以读取innerHTML属性以获取当前元素的源元素或outerHTML内容的源。

蟒蛇:

element.get_attribute('innerHTML')

Java的:

elem.getAttribute("innerHTML");

C#:

element.GetAttribute("innerHTML");

红宝石:

element.attribute("innerHTML")

JS:

element.getAttribute('innerHTML');

PHP:

$elem.getAttribute('innerHTML');

经过测试并与ChromeDriver


获取webelement的html源代码并不是真正的直接方式。 你将不得不使用JS。 我不太清楚python绑定,但是你可以在Java中轻松完成。 我确信必须有类似于Python中JavascriptExecutor类的东西。

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

当然,我们可以在Selenium Python中通过以下脚本获取所有HTML源代码:

elem = driver.find_element_by_xpath("//*")
source_code = elem.get_attribute("outerHTML")

如果你想将它保存到文件中:

f = open('c:/html_source_code.html', 'w')
f.write(source_code.encode('utf-8'))
f.close()

我建议保存到一个文件,因为源代码非常长。

链接地址: http://www.djcxy.com/p/67387.html

上一篇: Get HTML Source of WebElement in Selenium WebDriver using Python

下一篇: Wait for page load in Selenium