我正在使用Python绑定来运行Selenium WebDriver:
from selenium import webdriver
wd = webdriver.Firefox()
我知道我可以像这样抓取一个网页:
elem = wd.find_element_by_css_selector('#my-id')
我知道我可以拿到整个页面的源代码...
wd.page_source
但是有没有办法获得“元素源”呢?
elem.source # <-- returns the HTML as a string
用于Python的Selenium WebDriver文档基本上是不存在的,我在代码中看不到任何支持该功能的东西。
访问元素(及其子元素)的HTML的最佳方式是什么?
发布于 2011-09-03 11:29:14
没有一种简单的方法可以获得webelement
的HTML源代码。您将不得不使用JavaScript。我对python绑定不太确定,但在Java中可以很容易地做到这一点。我相信Python中一定有类似于JavascriptExecutor
类的东西。
WebElement element = driver.findElement(By.id("foo"));
String contents = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML;", element);
发布于 2013-03-21 02:08:53
当然,我们可以在Selenium Python中使用以下脚本获得所有HTML源代码:
elem = driver.find_element_by_xpath("//*")
source_code = elem.get_attribute("outerHTML")
如果您要将其保存到文件中:
with open('c:/html_source_code.html', 'w') as f:
f.write(source_code.encode('utf-8'))
我建议保存到一个文件中,因为源代码非常非常长。
发布于 2013-04-16 04:59:33
在Ruby中,使用selenium-webdriver (2.32.1),有一个包含整个页面源代码的page_source
方法。
https://stackoverflow.com/questions/7263824
复制相似问题