如何在 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()輸出

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP