selenium打开多窗口和切换窗口
切换页面:
有时候窗口中有很多子tab页面,这时候肯定是需要进行切换的。selenium提供了一个叫switch_to_window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到,示例代码如下:
# 打开一个新的页面
se1f.driver.execute_script("window.open('"+url+"')")
# 切换到这个新的页面中
se1f.driver.switch_to_window(se1f.driver.window_handles[1])
切换换页面示例:
注意:
虽然在窗口中切换到了新的页面。但是driver中还没有切换。如果想要在代码中切换到新的页面,并且做一些爬虫,那么应该使用driver.switch_to_window来切換到指定的窗口,从driver.window_handlers中取出具体第几个窗口driver.window handlers是一个列表,里面装的都是窗口句柄。他会按照打开页面的顺序来存储窗口的句柄。
from selenium import webdriver
driver_path = r"D:\application\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(executable_path = driver_path)
driver.get('https://www.douban.com/')
# 新建页面:
driver.execute_script("window.open('https://www.douban.com/')")
print(driver.current_url)
# 切换页面:
print(driver.window_handles)
driver.switch_to_window(driver.window_handles[1])
print(driver.current_url)