第一種方法:
使用場(chǎng)景:
打開(kāi)多個(gè)窗口,需要定位到新打開(kāi)的窗口
使用方法:
1
2
3
4
|
# 獲取打開(kāi)的多個(gè)窗口句柄 windows = driver.window_handles # 切換到當(dāng)前最新打開(kāi)的窗口 driver.switch_to.window(windows[-1]) |
舉例說(shuō)明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# _._ coding:utf-8 _._ """ :author: 花花測(cè)試 :time: 2017.05.03 :content: 使用第一種方法切換瀏覽器 """ from selenium import webdriver import time # 打開(kāi)課工場(chǎng)網(wǎng)站主頁(yè)【第一個(gè)窗口】 driver = webdriver.Chrome() driver.get('http://www.kgc.cn/') driver.maximize_window() # 點(diǎn)擊全部課程,進(jìn)入課程庫(kù)【第二個(gè)窗口】 driver.find_element_by_link_text('全部課程').click() time.sleep(3) # 使用第一種方法切換瀏覽器【切換到第二個(gè)窗口】 windows = driver.window_handles driver.switch_to.window(windows[-1]) time.sleep(3) # 點(diǎn)擊課程庫(kù)中的某個(gè)課程,進(jìn)入課程詳情界面【在第二個(gè)窗口頁(yè)面進(jìn)行元素點(diǎn)擊操作,來(lái)判斷窗口是否切換成功】 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click() time.sleep(3) # 關(guān)閉瀏覽器 driver.quit() print('測(cè)試通過(guò)') |
第二種方法:
使用場(chǎng)景:
打開(kāi)兩個(gè)窗口,需要定位到新打開(kāi)的窗口
使用方法:
1
2
3
4
5
6
7
8
|
# 獲得打開(kāi)的第一個(gè)窗口句柄 window_1 = driver.current_window_handle # 獲得打開(kāi)的所有的窗口句柄 windows = driver.window_handles # 切換到最新的窗口 for current_window in windows: if current_window != window_1: driver.switch_to.window(current_window) |
舉例說(shuō)明:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# _._ coding:utf-8 _._ """ :author: 花花測(cè)試 :time: 2017.05.03 :content: 使用第二種方法切換瀏覽器 """ from selenium import webdriver import time from selenium import webdriver import time # 打開(kāi)課工場(chǎng)網(wǎng)站主頁(yè)【第一個(gè)窗口】 driver = webdriver.Chrome() driver.get('http://www.kgc.cn/') driver.maximize_window() # 點(diǎn)擊全部課程,進(jìn)入課程庫(kù)【第二個(gè)窗口】 driver.find_element_by_link_text('全部課程').click() time.sleep(3) # 使用第二種方法切換瀏覽器【切換到第二個(gè)窗口】 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) time.sleep(3) # 點(diǎn)擊課程庫(kù)中的某個(gè)課程,進(jìn)入課程詳情界面【在第二個(gè)窗口頁(yè)面進(jìn)行元素點(diǎn)擊操作,來(lái)判斷窗口是否切換成功】 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click() time.sleep(3) # 關(guān)閉瀏覽器 driver.quit() print('測(cè)試通過(guò)') |
兩種方法的區(qū)別:
1、第一種方法比較簡(jiǎn)單,能提升整體代碼的性能
2、第二種方法是大家最常用的方法,比較容易理解
以上這篇python3 selenium 切換窗口的幾種方法小結(jié)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/gz_testing/article/details/71251901