使用selenium無法獲取到標籤的文字內容的解決方法
阿新 • • 發佈:2019-01-14
在我們使用selenium進行抓取網頁的時候,可能有的時候會抓取不到內容。
selenium 獲取不了標籤文字的解決方法 ------ 即driver.find_element_by_xxx().text() 為空的解決辦法
<a href="http://www.baidu.com">ba百度</a>
例如:我們在用driver.find_element_by_xxx().text()獲取文字的時候,得到的文字為空,
那麼當前定位的元素可能被隱藏了。
1.判斷是否被隱藏 。 driver.find_element_by_xx().is_displayed()
print(driver.find_element_by_xx().is_displayed() )
列印結果,如果得到 false的結果.那就說明被隱藏了
2.怎麼解決?
is_displayed() 為false的元素,依然可以通過**getAttribute()**方法獲取元素的屬性.
由於webdriver spec的定義,Selenium WebDriver 只會與可見元素互動,所以獲取隱藏元素的文字總是會返回空字串。
可是,在某些情況下,我們需要獲取隱藏元素的文字。這些內容可以使用element.attribute('attributeName'), 通過**textContent, innerText, innerHTML**等屬性獲 取。(劃重點)
innerHTML 會返回元素的內部 HTML, 包含所有的HTML標籤。
例如,<div>Hello <p>World!</p></div>的innerHTML會得到Hello <p>World!</p>
textContent 和 innerText 只會得到文字內容,而不會包含 HTML 標籤。