Python爬蟲之Selenium警告框(彈窗)處理
JavaScript 有三種彈窗 Alert (只有確定按鈕), Confirmation (確定,取消等按鈕), Prompt (有輸入對話框),而且彈出的窗口是不能通過前端工具對其進(jìn)行定位的,這個時候就可以通過switch_to.alert方法來定位這個彈窗,并進(jìn)行一系列的操作。
本章中用到的關(guān)鍵方法如下:
- switch_to.alert:定位到警告框
- text:獲取警告框中的文字信息
- accept():接受現(xiàn)有警告框(相當(dāng)于確認(rèn))
- dismiss():解散現(xiàn)有警告框(相當(dāng)于取消)
- send_keys('文本內(nèi)容'):發(fā)送文本至警告框(適用于有輸入對話框的彈窗)
- click():鼠標(biāo)點擊事件(其他鼠標(biāo)事件請參考Python爬蟲 - Selenium(5)鼠標(biāo)事件)
- move_to_element():鼠標(biāo)懸停(詳情請參考Python爬蟲 - Selenium(5)鼠標(biāo)事件)
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
# 鼠標(biāo)懸停至“設(shè)置”鏈接
link = driver.find_element_by_link_text('設(shè)置')
ActionChains(driver).move_to_element(link).perform()
time.sleep(2) #睡兩秒,看一下效果
# 打開搜索設(shè)置
driver.find_element_by_link_text("搜索設(shè)置").click()
time.sleep(2) #睡兩秒,看一下效果
# 保存設(shè)置
driver.find_element_by_class_name("prefpanelgo").click()
time.sleep(2) #睡兩秒,看一下效果
# 定位警告框
alert = driver.switch_to.alert
print(alert.text) # 打印警告框內(nèi)容
#alert.send_keys('輸入內(nèi)容') #此測試網(wǎng)站不是可輸入類型的彈窗,先注釋掉
alert.accept() #接受現(xiàn)有警告框,相當(dāng)于確認(rèn)
#alert.dismiss() #解散現(xiàn)有警告框,相當(dāng)于取消
time.sleep(2) #睡兩秒,看一下效果
driver.quit()
Selenium文集傳送門:
| 標(biāo)題 | 簡介 |
|---|---|
| Python爬蟲 - Selenium(1)安裝和簡單使用 | 詳細(xì)介紹Selenium的依賴環(huán)境在Windows和Centos7上的安裝及簡單使用 |
| Python爬蟲 - Selenium(2)元素定位和WebDriver常用方法 | 詳細(xì)介紹定位元素的8種方式并配合點擊和輸入、提交、獲取斷言信息等方法的使用 |
| 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è)置元素等待時間,防止程序運行過快而導(dǎo)致元素定位失敗 |
| Python爬蟲 - Selenium(14)窗口截圖 | 詳細(xì)介紹如何使用窗口截圖 |
| Python爬蟲 - Selenium(15)關(guān)閉瀏覽器 | 詳細(xì)介紹兩種關(guān)閉窗口的區(qū)別 |
到此這篇關(guān)于Python爬蟲之Selenium警告框(彈窗)處理的文章就介紹到這了,更多相關(guān)Selenium警告框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
win7上python2.7連接mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了win7上python2.7連接mysql數(shù)據(jù)庫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
web.py在SAE中的Session問題解決方法(使用mysql存儲)
這篇文章主要介紹了web.py在SAE中的Session問題解決方法(使用mysql存儲),本文直接給出實現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-06-06
Python網(wǎng)絡(luò)編程基于多線程實現(xiàn)多用戶全雙工聊天功能示例
這篇文章主要介紹了Python網(wǎng)絡(luò)編程基于多線程實現(xiàn)多用戶全雙工聊天功能,結(jié)合實例形式分析了Python網(wǎng)絡(luò)編程中使用多線程進(jìn)行多用戶異步通信的原理與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04
Python提取JSON格式數(shù)據(jù)實戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于Python提取JSON格式數(shù)據(jù)的相關(guān)資料, Python提供了內(nèi)置的json模塊,用于處理JSON數(shù)據(jù),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-07-07
Python使用SQLite和Excel操作進(jìn)行數(shù)據(jù)分析
這篇文章主要介紹了Python使用SQLite和Excel操作進(jìn)行數(shù)據(jù)分析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Python3列表內(nèi)置方法大全及示例代碼小結(jié)
這篇文章主要介紹了Python3列表內(nèi)置方法大全及示例代碼小結(jié),非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05

