在頁面操作過程中有時候點擊某個鏈接會彈出新的窗口,這時就需要切換到新打開的窗口上進行操作。
WebDriver提供了以下方法
current_window_handle:獲得當前窗口句柄
window_handles:返回所有窗口的句柄
switch_to.window(窗口句柄):切換到對應的窗口
close :關閉窗口使用
還是以百度為例,執行下面的代碼:
from selenium import webdriver import time driver = webdriver.Chrome() # 隱式等待 driver.implicitly_wait(5) #打開百度網頁 driver.get("http://www.baidu.com") # 定位到元素貼吧按鈕,進行點擊操作 element=driver.find_element_by_link_text("貼吧").click() # 獲得當前所有打開的窗口的句柄 all_handles = driver.window_handles for handle in all_handles: driver.switch_to.window(handle) print(driver.title) driver.quit()
執行以上代碼會打印出兩個title標題。因為window_handles返回的是一個列表,因此也可以使用列表的下標來獲取想要執行的窗口,自己動手試試吧
我的格言:但行好事、莫問前程