浏览器可以打开多个标签页(窗口),selenium当然也可以。浏览器可以打开、关闭、切换窗口,selenium的也是可以的。
【新开标签页才会增加window_handle,如果只是在当前窗口打开其他网址并不会增加window_handle,网上的好多例子都是错的。】
selenium窗口操作包括:
driver.current_window_handle() 获取当前窗口句柄
driver.window_handles() 获取所有窗口句柄
driver.switch_to.window() 切换窗口句柄
driver.set_window_size() 设置窗口大小
driver.set_window_position() 设置窗口x,y位置
driver.set_window_rect() 设置窗口的x,y坐标以及当前窗口的高度和宽度
driver.fullscreen_window() 全屏(F11的效果)
driver.get_window_position() 获取窗口x,y位置
driver.get_window_rect() 窗口的x,y坐标以及当前窗口的高度和宽度
driver.get_window_size() 获取窗口大小
driver.maximize_window() 最大化窗口(和全屏不同)
driver.minimize_window() 最小化窗口
此外,WebDriverWait类里有个等待新窗口出现的操作:
WebDriverWait(driver,20).until(EC.new_window_is_opened(driver.window_handles()))
当然,也可以配合如下操作:
driver.back() 返回上一页