zoukankan      html  css  js  c++  java
  • 元素的text、innerText 和 textContent 的区别

    ###

    二、获取元素中的文本内容
    
    1、通过get_attribute(‘textContent’)来获取元素的文本值
    
    logoContext1 = driver.find_element_by_xpath('//div[@class="logo"]/span').get_attribute('textContent')
    1
    2、通过text来获取文本值
    
    logoContext2 = driver.find_element_by_xpath('//div[@class="logo"]/span').text
    1
    3、通过执行JS操作来获取输入的文本值
    
    logoContext3 = "return document.getElementsByTagName('span')[0].innerText"
    1
    打印出来的值
    
    后台管理系统

    ######

    二、元素的text、innerText 和 textContent 的区别
    以下内容参考链接 https://juejin.im/post/5c0914c5f265da610e7fe372整理和修改
    
    我们再看一段代码
    
    1234
    为了节约篇幅,我这里就不展示Python代码。此处Python代码和上文一致,仅将元素设置为"table_1"。
    
    运行结果:
    
    谷歌浏览器: 83.0.4103.116selenium版本号:3.141.0-------text---------1 24-------innerText---------1     24-------outerText---------1     24-------textContent---------1234-------innerHTML---------1234-------outerHTML----------
    1234
    text、innerText和outerText 不能取到没有渲染在页面上的文本,也就是说隐藏的文本无法获取,textContent能获取所有的文本。
    对于元素下面的子元素的文本获取(例如本文中table下面的span元素) ,text、innerText和textContent获取文本的格式不一样,个人感觉innerText最贴合浏览器显示。
    innerText 会带来性能影响,由于 innerText 的值依赖渲染之后的结果,会受到 CSS 样式的影响,因此它会触发重排(reflow),所以使用它会有一定的性能影响;而 textContent 不会,因此更建议使用 textContent。
    textContent 是 W3C 兼容的文字内容属性,但是 IE 不支持。innerText 不是 W3C DOM 的指定内容,FireFox不支持。谷歌浏览两者都支持。

    ######

  • 相关阅读:
    bootstrap 模态框一闪而过的问题
    ${requestScope.paramName} 与 ${param.name}
    Android控件
    质量属性
    android基础知识复习一
    Numpy基础篇二
    miniconda 搭建tensorflow框架
    Numpy基础篇一
    pandas 数据索引与选取
    《架构漫谈》阅读笔记
  • 原文地址:https://www.cnblogs.com/andy0816/p/14598300.html
Copyright © 2011-2022 走看看