如何在 Python 的 Selenium 中切換到新視窗?


當開啟多個視窗時,Selenium 可以切換到新視窗。在填寫表單中的日期欄位時可能會開啟一個新視窗,或者點選連結、按鈕或廣告也會開啟一個新標籤頁。

Selenium 使用 **current_window_handle** 和 **window_handles** 方法來處理新視窗。window_handles 方法包含所有已開啟視窗的視窗控制代碼 ID。視窗 ID 控制代碼以 Set 資料結構的形式儲存 [包含字串資料型別]。

current_window_handle 方法用於儲存當前活動視窗的視窗控制代碼 ID。最後,要切換到特定視窗,使用 **switch_to_window()** 方法。要切換到的視窗的控制代碼 ID 作為引數傳遞給該方法。

實現上述概念的步驟如下:

  • 應用程式啟動後,讓我們首先使用 window_handles 方法將所有視窗控制代碼 ID 儲存在 Set 資料結構中。

  • 我們將遍歷所有視窗控制代碼 ID,直到找到所需的視窗控制代碼 ID。

  • 然後,讓我們使用 current_window_handle 方法獲取當前視窗控制代碼 ID。

  • 然後使用 switch_to_window() 方法切換到該視窗。

示例

程式碼實現。

from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.get("https://#/signup")
driver.find_element_by_link_text("Help").click()
#prints parent window title
print("Parent window title: " + driver.title)
#get current window handle
p = driver.current_window_handle
#get first child window
chwnd = driver.window_handles
for w in chwnd:
   #switch focus to child window
   if(w!=p):
   driver.switch_to.window(w)
   break
time.sleep(0.9)
print("Child window title: " + driver.title)
driver.quit()

輸出

更新於: 2020年8月28日

1K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告