python+selenium 多窗口切換-window_handles


1. 常用方法
使用背景:有些網站點擊鏈接會新打開一個tab,如下圖打開了兩個瀏覽器窗口;元素定位正確,調試時一直報錯,原因是未切換到對應的窗口句柄,切換到對應的窗口句柄才可以正常操作

current_window_handle:獲得當前窗口句柄
window_handles:獲取所有窗口的句柄到當前會話,返回一個窗口句柄列表
switch_to.window():切換窗口句柄
# -*-coding:utf-8一*-
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")

# 獲得百度搜索窗口句柄
search_windows = driver.current_window_handle
print(search_windows)

driver.find_element_by_link_text('登錄').click()
driver.find_element_by_link_text("立即注冊").click()

# 獲得當前所有打開的窗口的句柄
all_handles = driver.window_handles
print(all_handles)

# 切換到注冊窗口 方式1 通過判斷是否與當前窗口句柄一致
for handle in all_handles:
if handle != search_windows:
driver.switch_to.window(handle)
driver.find_element_by_name("userName").send_keys('我是測試小白')
driver.find_element_by_name('phone').send_keys('12345678910')
time.sleep(2)
# 后續步驟省略

# 切換到注冊窗口 方式2 通過獲取的所有窗口列表的索引切換
# driver.switch_to.window(all_handles[1])
# driver.find_element_by_name("userName").send_keys('我是測試小白')
# driver.find_element_by_name('phone').send_keys('12345678910')
# time.sleep(2)

driver.quit()

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM