1. 程式人生 > >selenium 切換窗口的幾種方法

selenium 切換窗口的幾種方法

lin 使用場景 get 舉例 第一個 content ive 性能 整體

第一種方法:

使用場景:

打開多個窗口,需要定位到新打開的窗口

使用方法:

# 獲取打開的多個窗口句柄
windows = driver.window_handles
# 切換到當前最新打開的窗口
driver.switch_to.window(windows[-1])

舉例說明:

 1 # _._ coding:utf-8 _._
 2 
 3 """
 4 :author: 花花測試
 5 :time: 2017.05.03
 6 :content: 使用第一種方法切換瀏覽器
 7 """
 8 
 9 from selenium import webdriver
10 import time
11 
12 #   打開課工場網站主頁【第一個窗口】
13 driver = webdriver.Chrome()
14 driver.get(‘http://www.kgc.cn/‘)
15 driver.maximize_window()
16 
17 #   點擊全部課程,進入課程庫【第二個窗口】
18 driver.find_element_by_link_text(‘全部課程‘).click()
19 time.sleep(3)
20 
21 #   使用第一種方法切換瀏覽器【切換到第二個窗口】
22 windows = driver.window_handles
23 driver.switch_to.window(windows[-1])
24 time.sleep(3)
25 
26 #   點擊課程庫中的某個課程,進入課程詳情界面【在第二個窗口頁面進行元素點擊操作,來判斷窗口是否切換成功】
27 driver.find_element_by_xpath(‘//*[@id="yw1"]/ul/li[2]‘).click()
28 time.sleep(3)
29 
30 #   關閉瀏覽器
31 driver.quit()
32 print(‘測試通過‘)

第二種方法:

使用場景:

打開兩個窗口,需要定位到新打開的窗口

使用方法:

# 獲得打開的第一個窗口句柄
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 # _._ coding:utf-8 _._
 2 
 3 """
 4 :author: 花花測試
 5 :time: 2017.05.03
 6 :content: 使用第二種方法切換瀏覽器
 7 """
 8 
 9 from selenium import webdriver
10 import time
11 
12 from selenium import webdriver
13 import time
14 
15 #   打開課工場網站主頁【第一個窗口】
16 driver = webdriver.Chrome()
17 driver.get(‘http://www.kgc.cn/‘)
18 driver.maximize_window()
19 
20 #   點擊全部課程,進入課程庫【第二個窗口】
21 driver.find_element_by_link_text(‘全部課程‘).click()
22 time.sleep(3)
23 
24 #   使用第二種方法切換瀏覽器【切換到第二個窗口】
25 window_1 = driver.current_window_handle
26 windows = driver.window_handles
27 for current_window in windows:
28     if current_window != window_1:
29         driver.switch_to.window(current_window)
30 time.sleep(3)
31 
32 #   點擊課程庫中的某個課程,進入課程詳情界面【在第二個窗口頁面進行元素點擊操作,來判斷窗口是否切換成功】
33 driver.find_element_by_xpath(‘//*[@id="yw1"]/ul/li[2]‘).click()
34 time.sleep(3)
35 
36 #   關閉瀏覽器
37 driver.quit()
38 print(‘測試通過‘)

兩種方法的區別:
1、第一種方法比較簡單,能提升整體代碼的性能
2、第二種方法是大家最常用的方法,比較容易理解

selenium 切換窗口的幾種方法