3 回答

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊
提取所有鏈接應(yīng)該用循環(huán):
1234 | urls = driver.find_elements_by_xpath( "//a" ) for url in urls: print (url.get_attribute( "href" )) |
如果get_attribute方法報錯應(yīng)該是沒有找到a標(biāo)簽對象,如果確定是有的話,可能是頁面加載比較慢還沒加載出來,selenium默認(rèn)是不會等待對象出現(xiàn)的,需要在找對象前加一些等待時間;另外如果頁面上有iframe的話需要先切換進(jìn)去才能找到里面的對象。

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊
解決辦法:
使用selenium.webdriver.remote.webelement.WebElement提供的get_attribute方法。
通過get_attribute拿到該a標(biāo)簽的各種屬性,通過判斷找到符合要求的元素進(jìn)行點擊。
get_attribute("href") 得到a標(biāo)簽對應(yīng)的目標(biāo)頁面的URL,對URL進(jìn)行判斷就可以了解到該頁面是否站內(nèi)頁面。我們可以知道,如果是站內(nèi)頁面的話這個屬性一般會是一個相對路徑,或者包含了本站域名,但如果是站外頁面的話,那它一定是包含了“http”的一個url。
get_attribute("target")如果target不是"_blank"的話,可以判斷該頁面是在本窗口跳轉(zhuǎn)的
添加回答
舉報