Python爬蟲(chóng)之Selenium多窗口切換的實(shí)現(xiàn)
前言:在頁(yè)面操作過(guò)程中有時(shí)候點(diǎn)擊某個(gè)鏈接會(huì)彈出新的窗口,但由于Selenium的所有操作都是在第一個(gè)打開(kāi)的頁(yè)面進(jìn)行的,這時(shí)就需要主機(jī)切換到新打開(kāi)的窗口上進(jìn)行操作。WebDriver提供了switch_to.window()方法,可以實(shí)現(xiàn)在不同的窗口之間切換。 以百度首頁(yè)和百度注冊(cè)頁(yè)為例,在兩個(gè)窗口之間的切換。
本章中用到的關(guān)鍵方法如下:
- current_window_handle:獲得當(dāng)前窗口句柄
- window_handles:返回所有窗口的句柄到當(dāng)前會(huì)話
- switch_to.window():用于切換到相應(yīng)的窗口
跳轉(zhuǎn)至注冊(cè)頁(yè)面,然后獲取所有頁(yè)面的句柄,并打印各個(gè)頁(yè)面的title
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") time.sleep(2) #睡兩秒,看一下效果 driver.find_element_by_link_text('登錄').click() time.sleep(2) #睡兩秒,看一下效果 driver.find_element_by_link_text("立即注冊(cè)").click() time.sleep(2) #睡兩秒,看一下效果 # 獲得當(dāng)前窗口句柄 sreach_windows = driver.current_window_handle # 獲得當(dāng)前所有打開(kāi)的窗口的句柄 all_handles = driver.window_handles for handle in all_handles: if handle != sreach_windows: driver.switch_to.window(handle) print(driver.title) else: print('當(dāng)前頁(yè)面title:%s'%driver.title) driver.quit()
Selenium文集傳送門(mén):
標(biāo)題 | 簡(jiǎn)介 |
---|---|
Python爬蟲(chóng) - Selenium(1)安裝和簡(jiǎn)單使用 | 詳細(xì)介紹Selenium的依賴環(huán)境在Windows和Centos7上的安裝及簡(jiǎn)單使用 |
Python爬蟲(chóng) - Selenium(2)元素定位和WebDriver常用方法 | 詳細(xì)介紹定位元素的8種方式并配合點(diǎn)擊和輸入、提交、獲取斷言信息等方法的使用 |
Python爬蟲(chóng) - Selenium(3)控制瀏覽器的常用方法 | 詳細(xì)介紹自定義瀏覽器窗口大小或全屏、控制瀏覽器后退、前進(jìn)、刷新瀏覽器等方法的使用 |
Python爬蟲(chóng) - Selenium(4)配置啟動(dòng)項(xiàng)參數(shù) | 詳細(xì)介紹Selenium啟動(dòng)項(xiàng)參數(shù)的配置,其中包括無(wú)界面模式、瀏覽器窗口大小設(shè)置、瀏覽器User-Agent (請(qǐng)求頭)等等 |
Python爬蟲(chóng) - Selenium(5)鼠標(biāo)事件 | 詳細(xì)介紹鼠標(biāo)右擊、雙擊、拖動(dòng)、鼠標(biāo)懸停等方法的使用 |
Python爬蟲(chóng) - Selenium(6)鍵盤(pán)事件 | 詳細(xì)介紹鍵盤(pán)的操作,幾乎包含所有常用按鍵以及組合鍵 |
Python爬蟲(chóng) - Selenium(7)多窗口切換 | 詳細(xì)介紹Selenium是如何實(shí)現(xiàn)在不同的窗口之間自由切換 |
Python爬蟲(chóng) - Selenium(8)frame/iframe表單嵌套頁(yè)面 | 詳細(xì)介紹如何從當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁(yè)面中 |
Python爬蟲(chóng) - Selenium(9)警告框(彈窗)處理 | 詳細(xì)介紹如何定位并處理多類警告彈窗 |
Python爬蟲(chóng) - Selenium(10)下拉框處理 | 詳細(xì)介紹如何靈活的定位并處理下拉框 |
Python爬蟲(chóng) - Selenium(11)文件上傳 | 詳細(xì)介紹如何優(yōu)雅的通過(guò)send_keys()指定文件進(jìn)行上傳 |
Python爬蟲(chóng) - Selenium(12)獲取登錄Cookies,并添加Cookies自動(dòng)登錄 | 詳細(xì)介紹如何獲取Cookies和使用Cookies進(jìn)行自動(dòng)登錄 |
Python爬蟲(chóng) - Selenium(13)設(shè)置元素等待 | 詳細(xì)介紹如何優(yōu)雅的設(shè)置元素等待時(shí)間,防止程序運(yùn)行過(guò)快而導(dǎo)致元素定位失敗 |
Python爬蟲(chóng) - Selenium(14)窗口截圖 | 詳細(xì)介紹如何使用窗口截圖 |
Python爬蟲(chóng) - Selenium(15)關(guān)閉瀏覽器 | 詳細(xì)介紹兩種關(guān)閉窗口的區(qū)別 |
到此這篇關(guān)于Python爬蟲(chóng)之Selenium多窗口切換的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Selenium多窗口切換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中對(duì)開(kāi)區(qū)間和閉區(qū)間的理解
這篇文章主要介紹了python中對(duì)開(kāi)區(qū)間和閉區(qū)間的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python程序?qū)崿F(xiàn)BTC(比特幣)挖礦的完整代碼
這篇文章主要介紹了python程序?qū)崿F(xiàn)BTC(比特幣)挖礦的完整代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01tensorflow實(shí)現(xiàn)簡(jiǎn)單邏輯回歸
邏輯回歸是一種分類器模型,這篇文章主要介紹了tensorflow實(shí)現(xiàn)簡(jiǎn)單邏輯回歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09python+pygame實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲的三種方式
這篇文章主要介紹了使用python實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲,文中提供了三種實(shí)現(xiàn)方式,解決思路和部分實(shí)現(xiàn)代碼,感興趣的朋友可以參考下2023-03-03對(duì)Python進(jìn)行數(shù)據(jù)分析_關(guān)于Package的安裝問(wèn)題
下面小編就為大家?guī)?lái)一篇對(duì)Python進(jìn)行數(shù)據(jù)分析_關(guān)于Package的安裝問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Python可視化神器pyecharts之繪制地理圖表練習(xí)
這篇文章主要介紹了Python可視化神器pyecharts之繪制地理圖表,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07利用python為運(yùn)維人員寫(xiě)一個(gè)監(jiān)控腳本
近來(lái)在學(xué)習(xí)用Python進(jìn)行一些電腦運(yùn)維的工作。所以下面這篇文章主要給大家介紹了關(guān)于利用python為運(yùn)維人員寫(xiě)一個(gè)監(jiān)控腳本的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03升級(jí)Python版本后anaconda navigator啟動(dòng)失敗解決方案(最新推薦)
anaconda navigator啟動(dòng)失敗,尤其是重裝不解決問(wèn)題的,大概率是庫(kù)沖突,解決方法也很簡(jiǎn)單,只需要?jiǎng)h掉引起沖突的庫(kù),感興趣的朋友跟隨小編一起看看吧2023-11-11