在使用selenium爬取的時(shí)候用xpath定位元素,最常見(jiàn)的報(bào)錯(cuò)就是這個(gè),通常要么是xpath寫(xiě)錯(cuò)了,要么就是元素還沒(méi)加載出來(lái)。
如果是前者可以用谷歌瀏覽器的xpath helper插件檢查xpath是否正確,后者可以增加等待時(shí)間或使用以下語(yǔ)句等到元素可見(jiàn)再執(zhí)行后續(xù)操作:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 100, 0.5)
element = wait.until(EC.visibility_of_element_located((By.XPATH, 'your_xpath')))
這次我遇到的問(wèn)題是,在網(wǎng)頁(yè)中復(fù)制的xpath粘貼到xpath helper中卻顯示為空,相應(yīng)的代碼中也拋出異常找不到xpath對(duì)應(yīng)的元素。
經(jīng)過(guò)一番研究,發(fā)現(xiàn)是我找的元素被包含在iframe中,而不是主HTML源碼中。需要添加以下代碼先將driver切換到相應(yīng)的iframe中,然后再進(jìn)行元素的定位和數(shù)據(jù)的抓取。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-588973.html
driver.switch_to.frame("iframeId")
成功解決。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-588973.html
到了這里,關(guān)于解決selenium定位不到xpath元素: “NoSuchElementException: Message: no such element: Unable的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!