使用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