Python爬蟲之Selenium多窗口切換的實現(xiàn)
前言:在頁面操作過程中有時候點(diǎn)擊某個鏈接會彈出新的窗口,但由于Selenium的所有操作都是在第一個打開的頁面進(jìn)行的,這時就需要主機(jī)切換到新打開的窗口上進(jìn)行操作。WebDriver提供了switch_to.window()方法,可以實現(xiàn)在不同的窗口之間切換。 以百度首頁和百度注冊頁為例,在兩個窗口之間的切換。
本章中用到的關(guān)鍵方法如下:
- current_window_handle:獲得當(dāng)前窗口句柄
- window_handles:返回所有窗口的句柄到當(dāng)前會話
- switch_to.window():用于切換到相應(yīng)的窗口
跳轉(zhuǎn)至注冊頁面,然后獲取所有頁面的句柄,并打印各個頁面的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("立即注冊").click()
time.sleep(2) #睡兩秒,看一下效果
# 獲得當(dāng)前窗口句柄
sreach_windows = driver.current_window_handle
# 獲得當(dāng)前所有打開的窗口的句柄
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)前頁面title:%s'%driver.title)
driver.quit()
Selenium文集傳送門:
| 標(biāo)題 | 簡介 |
|---|---|
| Python爬蟲 - Selenium(1)安裝和簡單使用 | 詳細(xì)介紹Selenium的依賴環(huán)境在Windows和Centos7上的安裝及簡單使用 |
| Python爬蟲 - Selenium(2)元素定位和WebDriver常用方法 | 詳細(xì)介紹定位元素的8種方式并配合點(diǎn)擊和輸入、提交、獲取斷言信息等方法的使用 |
| Python爬蟲 - Selenium(3)控制瀏覽器的常用方法 | 詳細(xì)介紹自定義瀏覽器窗口大小或全屏、控制瀏覽器后退、前進(jìn)、刷新瀏覽器等方法的使用 |
| Python爬蟲 - Selenium(4)配置啟動項參數(shù) | 詳細(xì)介紹Selenium啟動項參數(shù)的配置,其中包括無界面模式、瀏覽器窗口大小設(shè)置、瀏覽器User-Agent (請求頭)等等 |
| Python爬蟲 - Selenium(5)鼠標(biāo)事件 | 詳細(xì)介紹鼠標(biāo)右擊、雙擊、拖動、鼠標(biāo)懸停等方法的使用 |
| Python爬蟲 - Selenium(6)鍵盤事件 | 詳細(xì)介紹鍵盤的操作,幾乎包含所有常用按鍵以及組合鍵 |
| Python爬蟲 - Selenium(7)多窗口切換 | 詳細(xì)介紹Selenium是如何實現(xiàn)在不同的窗口之間自由切換 |
| Python爬蟲 - Selenium(8)frame/iframe表單嵌套頁面 | 詳細(xì)介紹如何從當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁面中 |
| Python爬蟲 - Selenium(9)警告框(彈窗)處理 | 詳細(xì)介紹如何定位并處理多類警告彈窗 |
| Python爬蟲 - Selenium(10)下拉框處理 | 詳細(xì)介紹如何靈活的定位并處理下拉框 |
| Python爬蟲 - Selenium(11)文件上傳 | 詳細(xì)介紹如何優(yōu)雅的通過send_keys()指定文件進(jìn)行上傳 |
| Python爬蟲 - Selenium(12)獲取登錄Cookies,并添加Cookies自動登錄 | 詳細(xì)介紹如何獲取Cookies和使用Cookies進(jìn)行自動登錄 |
| Python爬蟲 - Selenium(13)設(shè)置元素等待 | 詳細(xì)介紹如何優(yōu)雅的設(shè)置元素等待時間,防止程序運(yùn)行過快而導(dǎo)致元素定位失敗 |
| Python爬蟲 - Selenium(14)窗口截圖 | 詳細(xì)介紹如何使用窗口截圖 |
| Python爬蟲 - Selenium(15)關(guān)閉瀏覽器 | 詳細(xì)介紹兩種關(guān)閉窗口的區(qū)別 |
到此這篇關(guān)于Python爬蟲之Selenium多窗口切換的實現(xiàn)的文章就介紹到這了,更多相關(guān)Selenium多窗口切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 識別12306圖片驗證碼物品的實現(xiàn)示例
這篇文章主要介紹了Python 識別12306圖片驗證碼物品的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
python如何每天在指定時間段運(yùn)行程序及關(guān)閉程序
這篇文章主要介紹了python如何每天在指定時間段運(yùn)行程序及關(guān)閉程序問題,具有很好的參考價值,希望對大家有所幫助。2023-04-04
Python機(jī)器學(xué)習(xí)之Kmeans基礎(chǔ)算法
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)之Kmeans基礎(chǔ)算法,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
python中的decimal類型轉(zhuǎn)換實例詳解
decimal 模塊實現(xiàn)了定點(diǎn)和浮點(diǎn)算術(shù)運(yùn)算符,使用的是大多數(shù)人所熟悉的模型,而不是程序員熟悉的模型,即大多數(shù)計算機(jī)硬件實現(xiàn)的 IEEE 浮點(diǎn)數(shù)運(yùn)算。這篇文章主要介紹了python里的decimal類型轉(zhuǎn)換,需要的朋友可以參考下2019-06-06
python中使用(.)進(jìn)行相對路徑訪問文件的操作方法
在Python中,使用相對路徑訪問文件是一種常見的做法,尤其是在處理與腳本位于同一目錄或附近目錄的文件時,這篇文章主要介紹了python中使用(.)來進(jìn)行相對路徑訪問文件,需要的朋友可以參考下2024-05-05
Django事務(wù)transaction的使用以及多個裝飾器問題
這篇文章主要介紹了Django事務(wù)transaction的使用以及多個裝飾器問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
wxpython+pymysql實現(xiàn)用戶登陸功能
這篇文章主要介紹了wxpython+pymysql實現(xiàn)用戶登陸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
Python中類型關(guān)系和繼承關(guān)系實例詳解
這篇文章主要介紹了Python中類型關(guān)系和繼承關(guān)系,較為詳細(xì)的分析了Python中類型關(guān)系和繼承關(guān)系的原理與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-05-05

