在用selenium做自动化时,经常想要在多个窗口之间切换,首先要知道每一个窗口的唯一标识符(也就是“句柄”),然后通过句柄来进行不同窗口之间的切换。

打开一个新窗口

1 from selenium import webdriver
2 from time import sleep
3
4 driver = webdriver.Chrome()
5 driver.get("https://www.baidu.com/")
6 sleep(2)
7 driver.execute_script('window.open("http://fanyi.youdao.com/")') #打开一个新窗口
8 sleep(2)
9 driver.quit() #关闭相关浏览器

获取句柄并进行窗口切换

1 from selenium import webdriver
2 from time import sleep
3
4 driver = webdriver.Chrome()
5 driver.get("https://www.baidu.com/")
6 index1 = driver.current_window_handle #当前窗口句柄,即baidu页面的句柄
7 sleep(2)
8 driver.execute_script('window.open("http://fanyi.youdao.com/")')
9 sleep(2)
10 driver.switch_to.window(index1) # 切换回第一个窗口
11 print('第一个窗口:', driver.title)
12 sleep(2)
13 driver.window_handles #所有句柄
14 driver.switch_to.window(driver.window_handles[1]) # 切换回第二个窗口
15 print('第二个窗口:', driver.title)
16 sleep(2)
17

 

参考链接:​​https://www.jianshu.com/p/60cf21e0ae55​