Python爬蟲之Selenium中frame/iframe表單嵌套頁面
在Web應(yīng)用中經(jīng)常會(huì)遇到frame/iframe表單嵌套頁面的應(yīng)用,WebDriver只能在一個(gè)頁面上對元素識(shí)別與定位,對于frame/iframe表單內(nèi)嵌頁面上的元素?zé)o法直接定位。這時(shí)就需要通過switch_to.frame()方法將當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁面中。
本章中用到的關(guān)鍵方法如下:
- switch_to.frame():切換為frame/iframe表單的內(nèi)嵌頁面中
- switch_to.parent_frame():退出內(nèi)嵌頁面
以ip138網(wǎng)站為例

from selenium import webdriver
driver = webdriver.Chrome()
# 打開ip138網(wǎng)站
driver.get("http://www.ip138.com/")
# 定位到內(nèi)嵌網(wǎng)頁(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屬性,如果都沒有則通過上邊的定位方式
print(driver.find_element_by_xpath('/html/body/p[1]').text)
# 退出內(nèi)嵌網(wǎng)頁(iframe),如果想操作外層的頁面,不退出是會(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文集傳送門:
| 標(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)配置啟動(dòng)項(xiàng)參數(shù) | 詳細(xì)介紹Selenium啟動(dòng)項(xiàng)參數(shù)的配置,其中包括無界面模式、瀏覽器窗口大小設(shè)置、瀏覽器User-Agent (請求頭)等等 |
| Python爬蟲 - Selenium(5)鼠標(biāo)事件 | 詳細(xì)介紹鼠標(biāo)右擊、雙擊、拖動(dòng)、鼠標(biāo)懸停等方法的使用 |
| Python爬蟲 - Selenium(6)鍵盤事件 | 詳細(xì)介紹鍵盤的操作,幾乎包含所有常用按鍵以及組合鍵 |
| Python爬蟲 - Selenium(7)多窗口切換 | 詳細(xì)介紹Selenium是如何實(shí)現(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自動(dòng)登錄 | 詳細(xì)介紹如何獲取Cookies和使用Cookies進(jìn)行自動(dòng)登錄 |
| Python爬蟲 - Selenium(13)設(shè)置元素等待 | 詳細(xì)介紹如何優(yōu)雅的設(shè)置元素等待時(shí)間,防止程序運(yùn)行過快而導(dǎo)致元素定位失敗 |
| Python爬蟲 - Selenium(14)窗口截圖 | 詳細(xì)介紹如何使用窗口截圖 |
| Python爬蟲 - Selenium(15)關(guān)閉瀏覽器 | 詳細(xì)介紹兩種關(guān)閉窗口的區(qū)別 |
到此這篇關(guān)于Python爬蟲之Selenium中frame/iframe表單嵌套頁面的文章就介紹到這了,更多相關(guān)Selenium frame/iframe表單嵌套內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談keras 模型用于預(yù)測時(shí)的注意事項(xiàng)
這篇文章主要介紹了淺談keras 模型用于預(yù)測時(shí)的注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
微信跳一跳python輔助軟件思路及圖像識(shí)別源碼解析
這篇文章主要介紹了微信跳一跳python輔助軟件思路及圖像識(shí)別源碼解析,需要的朋友可以參考下2018-01-01
Python+Pygame實(shí)現(xiàn)代碼雨動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了python中的一個(gè)小項(xiàng)目:利用pygame實(shí)現(xiàn)代碼雨動(dòng)畫效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-11-11
Python中函數(shù)的多種格式和使用實(shí)例及小技巧
這篇文章主要介紹了Python中函數(shù)的多種格式和使用實(shí)例及小技巧,本文講解了普通格式、帶收集位置參數(shù)的函數(shù)、帶收集關(guān)鍵字參數(shù)的函數(shù)、函數(shù)特殊用法、內(nèi)嵌函數(shù)和閉包等內(nèi)容,需要的朋友可以參考下2015-04-04
Python利用pandas和matplotlib實(shí)現(xiàn)繪制柱狀折線圖
這篇文章主要為大家詳細(xì)介紹了如何使用?Python?中的?Pandas?和?Matplotlib?庫創(chuàng)建一個(gè)柱狀圖與折線圖結(jié)合的數(shù)據(jù)可視化圖表,感興趣的可以了解一下2023-11-11

