在用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 driver.quit()