爬蟲學習日記(十)selenium frame的切換

KIM曉峰發表於2019-03-12

舊的HDMU被block,換成官網重新寫一個新的,換成官網以後可以發現整個爬蟲的效率都變慢很多。畢竟是因為是模擬瀏覽器,瀏覽器開啟官網要載入許多用不上的東西,就導致整個載入速度很慢,可以瞭解很多爬蟲可能只是訪問原先網站一個必要的iframe或則其他的,可以大大加速爬蟲的效率。

在用selenium爬取官網中的資訊時,在進行location定位的時候一直出現timeout的問題,可以確定的是xpath的定位是絕對沒有錯的。

後來發現是在selenium中,要定位frame中的元素的話,是要用方法跳轉到frame中進行跳轉才可以進行定位。

如圖示:

爬蟲學習日記(十)selenium frame的切換

要獲取到1號frame中的元素,必須用WebDriver中的.driver.switchTo().frame(By location)進行切換,必須要注意的是,切換到frame中就只能對frame中的元素進行操作,如sendkey,click,進行wait判斷時如果判斷的是frame外的元素的話,也會報timeout的錯誤。

如果已經進到frame中,想要定位frame外的元素,要用this.driver.switchTo().parentFrame()切換到frame外。

相關文章