当前位置: 首页 > 知识库问答 >
问题:

使用Selenium的text和innerHTML之间的区别

商宝
2023-03-14

有人能指出两者之间的区别吗?当某人应该在.text上使用'.get_attribute("innerhtml“)‘时?

共有1个答案

滕胜涝
2023-03-14

首先,text是一个属性,asinnerhtml是一个属性。从根本上说,属性和属性之间有一些区别。

get_attribute(innerHTML)获取元素的innerHTML

此方法将首先尝试返回具有给定名称的属性的值。如果不存在具有该名称的属性,则返回具有相同名称的属性的值。如果没有具有该名称的属性,则返回none

innerHTML - Name of the attribute/property to retrieve.
# Extract the text of an element.
my_text = target_element.get_attribute("innerHTML") 

text获取元素的文本。

>

  • 定义

    def text(self):
    """The text of the element."""
    return self._execute(Command.GET_ELEMENT_TEXT)['value']
    

    示例:

    # Extract the text of an element.
    my_text = target_element.text   
    
    <body id="page">
    

    注意:属性-属性映射不是一对一的!

    在HTML中,标记可能有属性。当浏览器解析HTML为标记创建DOM对象时,它识别标准属性并从中创建DOM属性。

    因此,当元素具有id或其他标准属性时,将创建相应的属性。但如果属性是非标准的,则不会发生这种情况。

      null
    <body something="non-standard">
      <script>
        alert(document.body.getAttribute('something')); // non-standard
      </script>
    </body>
    

    按照python中的属性和属性,当我们用someObject.someAttr这样的东西引用对象的属性时,python使用几种特殊的方法来获取对象的someAttr属性。在最简单的情况下,属性只是实例变量。

    从更广泛的角度来看:

    • 属性是出现在对象名称之后的名称。这是句法结构。例如,someobj.name.
    • 实例变量是对象内部__dict__中的项。
    • 属性引用的默认语义是提供对实例变量的访问。当我们提到someobj.name时,默认行为实际上是someobj.__dict__['name']

  •  类似资料:
    • 问题内容: 是什么区别,并且在JavaScript? 问题答案: 但是,与不同,它使您可以处理HTML富文本格式,并且不会自动对文本进行编码和解码。换句话说,以纯文本的形式检索和设置标签的内容,而以HTML格式检索和设置标签的内容。

    • JavaScript中的、和有什么区别?

    • 问题内容: jQuery的功能和之间有什么区别? 您将在哪里使用另一个? 问题答案: 适用于输入元素(或任何具有value属性的元素?),而不适用于输入元素。 获取输入元素的值- 与类型无关。获取所有匹配元素的innerText(不是HTML): 结果是一个字符串,其中包含所有匹配元素的组合文本内容。此方法对HTML和XML文档均适用。不能在输入元素上使用。对于输入字段文本,请使用val属性。 获

    • 问题内容: 我的问题是关于使用dot和in的细节。例如,以下几行返回相同的元素: 那么区别是什么呢?使用和的优点和缺点是什么? 问题答案: 和之间存在差异,但是由于您输入的文档,这种差异可能不会浮出水面。 如果您的输入文档看起来像(给定您的XPath表达式可以想象的最简单的文档) 例子1 然后和确实返回完全相同的结果。但是考虑一个看起来像下面的输入文档 例子2 其中该元素还有一个子元素,紧接在“问

    • 问题内容: 我发现与BeautifulSoup一起使用时有些奇怪,找不到任何文档来支持此操作,所以我想在这里询问。 假设我们有一个这样的标签,我们已经用BS对其进行了解析: 提取数据的官方记录方法是。但是,这为第二个标签提取了NoneType 。所以我尝试了(因为为什么不呢?),它完全按照我的意愿提取了一个空字符串。 但是,我在文档中找不到对此的任何引用,并且担心某些内容会丢失。谁能告诉我这是否可

    • 问题内容: 这个问题已经在这里有了答案 : MySQL中的VARCHAR vs TEXT (3个答案) 3个月前关闭。 当我们在MySQL中创建带有列的表时,我们必须为其设置长度。但是对于类型,我们不必提供长度。 和之间有什么区别? 问题答案: TL; DR 固定的最大大小为65535个字符(您不能限制最大大小) 占用2 + 字节的磁盘空间,其中是存储的字符串的长度。 不能(完全)成为索引的一部分