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

新手上路,请多包涵

我正在使用 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 的最佳方式是什么?

原文由 Chris W. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 604
2 个回答

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

Python:

 element.get_attribute('innerHTML')

爪哇:

 elem.getAttribute("innerHTML");

C#:

 element.GetAttribute("innerHTML");

红宝石:

 element.attribute("innerHTML")

脚本:

 element.getAttribute('innerHTML');

PHP:

 $element->getAttribute('innerHTML');

它经过测试并可与 ChromeDriver 一起使用。

原文由 Nerijus 发布,翻译遵循 CC BY-SA 4.0 许可协议

获取 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);

原文由 nilesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题