使用 Selenium 与 Web 元素交互时,获取它们的文本内容可以通过不同的方法来实现。其中包括 .text 和 .get_attribute("innerHTML")。虽然它们看起来可以互换,但当其中一种比另一种更合适时,两者和特定实例之间存在根本差异。
.get_attribute("innerHTML" ) 检索元素的innerHTML,包括其所有内容和标记。此方法首先尝试获取具有指定名称的属性。如果不存在属性,则返回同名的属性。如果两者都没有找到,则返回 None。
被视为 true 的值(相当于 true 或 false)将呈现为布尔值。相反,所有其他非 None 值都作为字符串返回。对于不存在的属性或属性,返回 None。
参数:
示例:
# Get the innerHTML of an element html = target_element.get_attribute("innerHTML")
.text 检索元素的文本内容,不包括任何标记或
定义:
def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value']
示例:
# Get the text of an element text = target_element.text
尽管 .text 和 .text 表面上相似.get_attribute("innerHTML"),需要考虑一些关键区别:
加载网页时,浏览器会解释 HTML 并解释创建 DOM 对象。 HTML 代码中定义的属性成为这些 DOM 对象的属性。但是,如果某个属性不是特定元素的标准属性,则它不会有相应的属性。
在这种情况下,可以使用以下方法访问属性:
HTML 中的标准属性通常与其对应的属性同步。这意味着当修改属性时,属性会自动更新,反之亦然。
在 Python 中,使用点表示法访问属性(例如,someObj 。姓名)。它可以是实例变量,也可以通过定义为属性的专门 getter 和 setter 方法进行访问。
提取元素内容时在 .text 和 .get_attribute("innerHTML") 之间进行选择取决于自动化任务的具体要求。如果目标是获取没有任何标记或样式的可见文本,.text 是理想的选择。或者,如果需要 HTML 内容的完整表示(包括所有元素及其格式),.get_attribute("innerHTML") 是合适的选择。
以上是Selenium `.text` 与 `.get_attribute('innerHTML')`:我什么时候应该使用它们?的详细内容。更多信息请关注PHP中文网其他相关文章!