第一種方法:
- 使用場景:多個(gè)窗口质涛,需要定位到新打開的窗口
- 使用方法:
# 獲取打開的多個(gè)窗口句柄
' windows = driver.window_handles '
# 切換到當(dāng)前最新打開的窗口
driver.switch_to.window(windows[-1])
- 舉例說明:
# _._ coding:utf-8 _._
"""
:author: gz_tester
:time: 2017.05.03
:content: 使用第一種方法切換瀏覽器
"""
from selenium import webdriver
import time
# 打開課工場網(wǎng)站主頁【第一個(gè)窗口】
driver = webdriver.Chrome()
driver.get('http://www.kgc.cn/')
driver.maximize_window()
# 點(diǎn)擊全部課程帮哈,進(jìn)入課程庫【第二個(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)擊課程庫中的某個(gè)課程佑女,進(jìn)入課程詳情界面【在第二個(gè)窗口頁面進(jìn)行元素點(diǎn)擊操作床蜘,來判斷窗口是否切換成功】
driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
time.sleep(3)
# 關(guān)閉瀏覽器
driver.quit()
print('測試通過')
第二種方法
- 使用場景:打開兩個(gè)窗口,需要定位到新打開的窗口
- 使用方法:
# 獲得打開的第一個(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)
- 舉例說明:
# _._ coding:utf-8 _._
"""
:author: 花花測試
:time: 2017.05.03
:content: 使用第二種方法切換瀏覽器
"""
from selenium import webdriver
import time
from selenium import webdriver
import time
# 打開課工場網(wǎng)站主頁【第一個(gè)窗口】
driver = webdriver.Chrome()
driver.get('http://www.kgc.cn/')
driver.maximize_window()
# 點(diǎn)擊全部課程,進(jìn)入課程庫【第二個(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)擊課程庫中的某個(gè)課程弊知,進(jìn)入課程詳情界面【在第二個(gè)窗口頁面進(jìn)行元素點(diǎn)擊操作懦鼠,來判斷窗口是否切換成功】
driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
time.sleep(3)
# 關(guān)閉瀏覽器
driver.quit()
print('測試通過')
兩種方法的區(qū)別
第一種方法比較簡單,能提升整體代碼的性能
第二種方法是大家最常用的方法相速,比較容易理解
說明:
1.我的腳本都是以 課工場 為例股冗,如果有什么不明白的地方,歡迎大家留言和蚪,我看的話會及時(shí)給大家解答
2.辛苦原創(chuàng)止状,轉(zhuǎn)載請注明出處