在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])