元素的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不支持。谷歌瀏覽兩者都支持。

 

 

 

 

 

 

 

######


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM