当前位置: 首页 > 面试题库 >

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

公西修文
2023-03-14
问题内容

我正在使用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的最佳方法有何想法?


问题答案:

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

Python:

element.get_attribute('innerHTML')

Java:

elem.getAttribute("innerHTML");

C#:

element.GetAttribute("innerHTML");

Ruby:

element.attribute("innerHTML")

JS:

element.getAttribute('innerHTML');

PHP:

$element->getAttribute('innerHTML');

经过测试并与ChromeDriver。



 类似资料:
  • 我是测试新手,如果我的问题听起来有点初级,我会提前道歉。 我正在使用Selenium和Java编写一个测试。 我知道webElement。getAttribute(“innerHTML”) 为我带来了innerHTML,例如下面的元素: 它返回: 但我需要一些东西来为我带来WebElement“a”的内部属性,如下所示:

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 我正在尝试教自己一些基本的网络抓取。使用Python的请求模块,在尝试以下操作之前,我能够抓取各种网站的html: 我得到的不是基本的html,而是本页面的内容: 我已经尝试过将get / post与我可以从文档,SO和其他示例中猜到的每种语法进行多种组合。我不明白上面看到的内容,无法将其转换为可以阅读的任何内容,也无法弄清楚如何获得自己真正想要的东西。我的问题是,如何获取以上页面的h

  • 问题陈述:我试图在网页上获取span标记的值。*该网页上有多个span标记,其中我需要4个。

  • 问题内容: 请参阅以下元素: 找到我的元素: 因此,找到后并使用带有selenium 或return 的文本: 所以我的问题是如何在没有此情况的情况下仅获得最后一行 问题答案: 所需的文本出现在文本节点中,并且无法直接使用Selenium检索,因为它仅支持元素节点。 您可以删除开头: 您还可以使用正则表达式从中提取所需的内容: 或使用一段JavaScript:

  • 问题内容: 请参阅以下元素: 找到我的元素: 因此,找到后并使用带有selenium 或return 的文本: 所以我的问题是如何只获得没有这一点的最后一行 问题答案: 所需的文本出现在文本节点中,并且无法直接使用Selenium检索,因为它仅支持元素节点。 您可以删除开头: 您还可以使用正则表达式从中提取所需的内容: 或使用一段JavaScript: