Python爬蟲(chóng)之Selenium中frame/iframe表單嵌套頁(yè)面
在Web應(yīng)用中經(jīng)常會(huì)遇到frame/iframe表單嵌套頁(yè)面的應(yīng)用,WebDriver只能在一個(gè)頁(yè)面上對(duì)元素識(shí)別與定位,對(duì)于frame/iframe表單內(nèi)嵌頁(yè)面上的元素?zé)o法直接定位。這時(shí)就需要通過(guò)switch_to.frame()
方法將當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁(yè)面中。
本章中用到的關(guān)鍵方法如下:
- switch_to.frame():切換為frame/iframe表單的內(nèi)嵌頁(yè)面中
- switch_to.parent_frame():退出內(nèi)嵌頁(yè)面
以ip138網(wǎng)站為例
from selenium import webdriver driver = webdriver.Chrome() # 打開(kāi)ip138網(wǎng)站 driver.get("http://www.ip138.com/") # 定位到內(nèi)嵌網(wǎng)頁(yè)(iframe),并進(jìn)入表單 xf = driver.find_element_by_xpath('/html/body/div/div[3]/iframe') driver.switch_to.frame(xf) #driver.switch_to.frame(name or id) #默認(rèn)直接取表單的id 或name屬性,如果都沒(méi)有則通過(guò)上邊的定位方式 print(driver.find_element_by_xpath('/html/body/p[1]').text) # 退出內(nèi)嵌網(wǎng)頁(yè)(iframe),如果想操作外層的頁(yè)面,不退出是會(huì)報(bào)錯(cuò)的 driver.switch_to.default_content() print(driver.find_element_by_xpath('/html/body/div/div[3]/h3').text) 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ì)介紹如何定位并處理多類(lèi)警告彈窗 |
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中frame/iframe表單嵌套頁(yè)面的文章就介紹到這了,更多相關(guān)Selenium frame/iframe表單嵌套內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jupyter notebook 實(shí)現(xiàn)matplotlib圖動(dòng)態(tài)刷新
這篇文章主要介紹了jupyter notebook 實(shí)現(xiàn)matplotlib圖動(dòng)態(tài)刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python實(shí)現(xiàn)加密的RAR文件解壓的方法(密碼已知)
這篇文章主要介紹了Python實(shí)現(xiàn)加密的RAR文件解壓,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Django model 中設(shè)置聯(lián)合約束和聯(lián)合索引的方法
今天小編就為大家分享一篇Django model 中設(shè)置聯(lián)合約束和聯(lián)合索引的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08anaconda中安裝的python環(huán)境中沒(méi)有pip3的問(wèn)題及解決
這篇文章主要介紹了anaconda中安裝的python環(huán)境中沒(méi)有pip3的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02使用Python實(shí)現(xiàn)視頻封面批量下載器
在視頻網(wǎng)站上,每個(gè)視頻都有一個(gè)獨(dú)特的封面圖像,本文主要為大家詳細(xì)如何使用Python編寫(xiě)一個(gè)視頻封面批量下載器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04Python asyncio異步編程簡(jiǎn)單實(shí)現(xiàn)示例
本文主要介紹了Python asyncio異步編程簡(jiǎn)單實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Python循環(huán)語(yǔ)句中else的用法總結(jié)
這篇文章給大家整理了關(guān)于Python中循環(huán)語(yǔ)句中else的用法,包括常規(guī)的 if else 用法、if else 快捷用法、與 for 關(guān)鍵字一起用、與 while 關(guān)鍵字一起用以及與 try except 一起用的用法總結(jié),有需要的朋友們可以參考借鑒。2016-09-09