python3 selenium 切換窗口的幾種方法小結(jié)
第一種方法:
使用場景:
打開多個窗口,需要定位到新打開的窗口
使用方法:
# 獲取打開的多個窗口句柄 windows = driver.window_handles # 切換到當(dāng)前最新打開的窗口 driver.switch_to.window(windows[-1])
舉例說明:
# _._ coding:utf-8 _._ """ :author: 花花測試 :time: 2017.05.03 :content: 使用第一種方法切換瀏覽器 """ from selenium import webdriver import time # 打開課工場網(wǎng)站主頁【第一個窗口】 driver = webdriver.Chrome() driver.get('http://www.kgc.cn/') driver.maximize_window() # 點(diǎn)擊全部課程,進(jìn)入課程庫【第二個窗口】 driver.find_element_by_link_text('全部課程').click() time.sleep(3) # 使用第一種方法切換瀏覽器【切換到第二個窗口】 windows = driver.window_handles driver.switch_to.window(windows[-1]) time.sleep(3) # 點(diǎn)擊課程庫中的某個課程,進(jìn)入課程詳情界面【在第二個窗口頁面進(jìn)行元素點(diǎn)擊操作,來判斷窗口是否切換成功】 driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click() time.sleep(3) # 關(guān)閉瀏覽器 driver.quit() 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)
舉例說明:
# _._ coding:utf-8 _._ """ :author: 花花測試 :time: 2017.05.03 :content: 使用第二種方法切換瀏覽器 """ from selenium import webdriver import time from selenium import webdriver import time # 打開課工場網(wǎng)站主頁【第一個窗口】 driver = webdriver.Chrome() driver.get('http://www.kgc.cn/') driver.maximize_window() # 點(diǎn)擊全部課程,進(jìn)入課程庫【第二個窗口】 driver.find_element_by_link_text('全部課程').click() time.sleep(3) # 使用第二種方法切換瀏覽器【切換到第二個窗口】 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)擊課程庫中的某個課程,進(jìn)入課程詳情界面【在第二個窗口頁面進(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、第一種方法比較簡單,能提升整體代碼的性能
2、第二種方法是大家最常用的方法,比較容易理解
以上這篇python3 selenium 切換窗口的幾種方法小結(jié)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3使用迭代生成器實(shí)現(xiàn)減少內(nèi)存占用
這篇文章主要介紹了python3使用迭代生成器實(shí)現(xiàn)減少內(nèi)存占用的相關(guān)資料,需要的朋友可以參考下2021-05-05python 腳本生成隨機(jī) 字母 + 數(shù)字密碼功能
本文通過一小段簡單的代碼給大家分享基于python 腳本生成隨機(jī) 字母 + 數(shù)字密碼功能,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05python通過函數(shù)名調(diào)用函數(shù)的幾種方法總結(jié)
今天帶大家學(xué)習(xí)的是怎么使用python通過函數(shù)名調(diào)用函數(shù),文中對python通過函數(shù)名調(diào)用函數(shù)的幾種方法有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06Python爬蟲實(shí)現(xiàn)模擬點(diǎn)擊動態(tài)頁面
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)模擬點(diǎn)擊動態(tài)頁面,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03python基礎(chǔ)教程之基本內(nèi)置數(shù)據(jù)類型介紹
在Python程序中,每個數(shù)據(jù)都是對像,每個對像都有自己的一個類型。不同類型有不同的操作方法,使用內(nèi)置數(shù)據(jù)類型獨(dú)有的操作方法,可以更快的完成很多工作2014-02-02darknet框架中YOLOv3對數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測詳解
這篇文章主要為大家介紹了darknet框架中YOLOv3對數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11