元素的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不支持。谷歌浏览两者都支持。

 

 

 

 

 

 

 

######

posted @ 2021-03-30 19:03  技术改变命运Andy  阅读(1708)  评论(0编辑  收藏  举报