比较 Selenium 中的 get_attribute("innerHTML") 和 .text
使用 Selenium 框架时,您可能会遇到需要的情况检索元素的文本或innerHTML。虽然这两种方法可以提供相似的结果,但需要考虑一些根本差异。
get_attribute("innerHTML")
get_attribute("innerHTML") 检索元素。 InnerHTML 包含元素的内容,包括其子元素。此方法将首先尝试返回具有给定名称的属性的值。如果该属性不存在,则返回同名属性的值。
# Example my_text = target_element.get_attribute("innerHTML")
.text
.text 检索某个属性的文本内容元素。此方法会忽略任何 HTML 标签或子元素,仅返回可见文本。
# Example my_text = target_element.text
属性和属性
了解 get_attribute("innerHTML" 之间的区别) 和 .text,请务必注意 HTML 及其 DOM 中的属性和特性之间的区别表示。
属性在 HTML 标签中定义,并提供有关元素的附加信息,例如其 id、类或样式。另一方面,属性是动态的,反映元素的当前状态。
当浏览器解析 HTML 时,它会为元素创建 DOM 对象。标准 HTML 属性会自动转换为 DOM 属性。但是,非标准属性只能通过 getAttribute() 方法访问。
用例
考虑以下场景:
示例
假设您有以下 HTML:
<body>
使用在 body 元素上使用 .text 将返回:
<body>
在这种情况下,如果您的目标如果要提取完整的 HTML 结构, get_attribute("innerHTML") 就比较合适。如果您只需要显示的文本,.text 就足够了。
以上是Selenium:`get_attribute('innerHTML')` 与 `.text` – 我什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!