第一種方法:
使用場景: 打開多個窗口,需要定位到新打開的窗口
使用方法:
# 獲取打開的多個窗口句柄 windows = driver.window_handles # 切換到當前最新打開的窗口 driver.switch_to.window(windows[-1])
第二種方法:
# 獲得打開的第一個窗口句柄 window_1 = driver.current_window_handle # 獲得打開的所有的窗口句柄 windows = driver.window_handles # 切換到最新的窗口 for current_window in windows: if current_window != window_1: driver.switch_to.window(current_window)
1、第一種方法比較簡單,能提升整體代碼的性能
2、第二種方法是大家最常用的方法,比較容易理解
使用js切換窗口
from selenium import webdriver import time #設置變量 url="http://www.baidu.com" #打開瀏覽器 br=webdriver.Chrome() br.maximize_window() #打開百度 br.get(urla) #通過JS打開新窗口 js='window.open("https://blog.csdn.net");' br.execute_script(js) time.sleep(3) #獲取當前句柄(百度) handlea=br.current_window_handle #獲取所有句柄 handles=br.window_handles print(handles) #獲取csdn句柄 for handle in handles: if handle != handlea: handleb = handle # 輸出CSDN句柄 print('switch to ', handleb) br.switch_to.window(handleb) time.sleep(3) #關閉CSDN界面 br.close() # 切換回百度窗口 print('switch Baidu ',handlea) br.switch_to.window(handlea) time.sleep(3) #關閉瀏覽器 br.quit()
