首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python获取Selenium WebDriver中WebElement的HTML源代码

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

Stack Overflow用户
提问于 2011-09-01 05:44:11
回答 14查看 557.1K关注 0票数 582

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

代码语言:javascript
复制
from selenium import webdriver
wd = webdriver.Firefox()

我知道我可以像这样抓取一个网页:

代码语言:javascript
复制
elem = wd.find_element_by_css_selector('#my-id')

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

代码语言:javascript
复制
wd.page_source

但是有没有办法获得“元素源”呢?

代码语言:javascript
复制
elem.source   # <-- returns the HTML as a string

用于Python的Selenium WebDriver文档基本上是不存在的,我在代码中看不到任何支持该功能的东西。

访问元素(及其子元素)的HTML的最佳方式是什么?

EN

回答 14

Stack Overflow用户

发布于 2011-09-03 11:29:14

没有一种简单的方法可以获得webelement的HTML源代码。您将不得不使用JavaScript。我对python绑定不太确定,但在Java中可以很容易地做到这一点。我相信Python中一定有类似于JavascriptExecutor类的东西。

代码语言:javascript
复制
 WebElement element = driver.findElement(By.id("foo"));
 String contents = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML;", element);
票数 96
EN

Stack Overflow用户

发布于 2013-03-21 02:08:53

当然,我们可以在Selenium Python中使用以下脚本获得所有HTML源代码:

代码语言:javascript
复制
elem = driver.find_element_by_xpath("//*")
source_code = elem.get_attribute("outerHTML")

如果您要将其保存到文件中:

代码语言:javascript
复制
with open('c:/html_source_code.html', 'w') as f:
    f.write(source_code.encode('utf-8'))

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

票数 83
EN

Stack Overflow用户

发布于 2013-04-16 04:59:33

在Ruby中,使用selenium-webdriver (2.32.1),有一个包含整个页面源代码的page_source方法。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7263824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档