用某8同城練習selenium的時候,有一個"加載更多"的按鈕,通常是不可見的.通過selenium獲取這個文本內容總是為空
1\ text屬性
element.text
2\ 雖然在浏覽器F12的控制台,可以獲取該元素文本內容,但是用selenium發送js獲取內容還是為空
1\確定元素是否為空
2\解決辦法
(1)selenium 只會與可見元素交互,所以獲取隱藏元素的文本為空None.可以修改元素相關屬性為可見
(2)通過get_attribute()方法獲取元素文本
在獲取隱藏元素的文本信息時,可以使用get_attribute()方法,通過textContent、innerText、innerHTML等屬性獲取。
innerHTML會返回元素內部的HTML,包含所有的HTML標簽。
textContent和innerText置灰得到文本內容,而不會包含HTML標簽。textContent是W3C兼容的文字內容屬性,但是IE不支持;innerText不是W3C DOM的指定內容,但是FireFox不支持。
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Firefox(keep_alive=True)
driver.maximize_window()
driver.get("https://XXXXX.58.com/pinpaigongyu/")
xpath = (By.XPATH,'//div[@class="loadbtn "]')
element = driver.find_element(*xpath)
text = element.get_attribute("innerText")
# 對於不可見元素,雖然能在浏覽器F12的控制台可以獲取文本,但是selenium發送的js還是無法獲取
# script = "arguments[0].textContent"
# text = driver.execute_script(script,element)
print(text)
time.sleep(4)
driver.quit()