selenium提取不了標簽文本


1.舉個例子:selenium使用driver.find_element_by_xpath().text 提取不到標簽文本??

如果我們提取的元素文本為空時,而不是我們想要的文本時,這時可能就是因為你所定位的元素被隱藏了,我們確認下是不是真的被隱藏了。。。

1.判斷是否被隱藏      
aa = driver.find_element_by_xx().is_displayed()  
print(aa)
打印結果,如果返回false.那就說明被隱藏了

  2.怎么解決?

 
         

方法一: 修改頁面當前定位元素,或者當前元素父元素的CSS,使元素的is_displayed() 值為true.

方法二: is_displayed() 為false的元素,依然可以通過getAttribute()方法獲取元素的屬性.

 
         

由於webdriver spec的定義,Selenium WebDriver 只會與可見元素交互,所以獲取隱藏元素的文本總是會返回空字符串,可是,在某些情況下,我們需要獲取隱藏元素的文本。這些內容可以使用element.attribute('attributeName'),

通過textContent, innerText, innerHTML等屬性獲取。

(1)innerHTML 會返回元素的內部 HTML, 包含所有的HTML標簽。
例如,<div>Hello <p>World!</p></div>的innerHTML會得到Hello <p>World!</p>
(2)textContent 和 innerText 只會得到文本內容,而不會包含 HTML 標簽,textContent 是 W3C 兼容的文字內容屬性,但是 IE 不支持
(3)innerText 不是 W3C DOM 的指定內容,FireFox不支持、谷歌也不支持

舉個例子

ss = driver.find_element_by_class_name('xxx')             # 定位
print(ss.get_attribute("innerHTML"))                      # 用innerHTML 會返回元素的內部 HTML, 包含所有的HTML標簽。
print(ss.get_attribute('textContent'))                    #用textContent 和 innerText 只會得到文本內容,而不會包含 HTML 標簽。                              
print(ss.get_attribute('innerText'))                      #innerText 不是 W3C DOM 的指定內容,FireFox不支持

 參考https://blog.csdn.net/boyStray/article/details/81065461


免責聲明!

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



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