在selenium中,我們會遇到一些問題,就是多窗口處理的問題,我們爬取的內容在一個新窗口上,這個時候,我們就需要先切換到這個新的窗口上,然后進行抓取內容。
如何切換呢?
首先,獲取當前窗口句柄
1.元素有屬性,瀏覽器的窗口其實也有屬性的,只是你看不到,瀏覽器窗口的屬性用句柄(handle)來識別。
2.人為操作的話,可以通過眼睛看,識別不同的窗口點擊切換。但是腳本沒長眼睛,它不知道你要操作哪個窗口,這時候只能句柄來判斷了。
3.獲取當前頁面的句柄:driver.current_window_handle。
然后我們通過遍歷的方式,切換到另一個窗口,上代碼:
from selenium import webdriver import time zhuye = obj.current_window_handle all_handles = obj.window_handles if len(all_handles)>1: for handle in all_handles: if handle != zhuye: obj.switch_to.window(handle)
這樣,我們就將從當前窗口切換到新的窗口,selenium的爬蟲就可以抓取新窗口上的東西了
最近看了另外一種切換窗口的辦法
#獲取所有的窗口 all_h = browser.window_handles #根據列表下標鎖定 browser.switch_to.window(all_h[1])