Selenium Webdriver 3.X源碼分析之alert.py
- 2019 年 10 月 4 日
- 筆記
> Selenium Webdriver 3.X源碼分析系列第6篇,該系列原則上會將整個源碼分享一遍
在對selenium/webdriver/common/alert.py源碼分析前,我們先看下標準的js彈窗有哪些,在JavaScript 有三種類型的彈出框:警告框、確認框和提示框。
具體的標準代碼及彈窗演示如下:



註:要注意三者之間的應用場景及具體的代碼,不看html代碼,直接只看窗口顯示是區分不了是不是標準彈窗的,所以在selenium webdriver實際應用時,必須掌握和分析html源碼。
下面我們看看在selenium webdriver中提供用於處理javascript標準彈窗的模塊源碼, 其路徑和源碼結構如下:

看下alert.py提供出來的標準用法:

下面看下__init__函數:

需要傳入一個實例化的webdriver對象給alert初始化函數。
text屬性源碼

dismiss取消函數,用於處理彈窗的取消按鈕,即調用該函數會自動觸發彈窗上的取消按鈕

accep確認函數,用於處理彈窗的ok、確定按鈕,即調用該函數會自動化觸發彈窗上的ok、確定按鈕

給彈窗的輸入框,輸入文本

下面我們看一下alert.py的實際的使用demo:
# 導入相關庫
from selenium import webdriver
from time import sleep
# 初始化webdriver實例
driver = webdriver.Firefox()
# 訪問個可以有彈窗的網站
driver.get('http://sahitest.com/demo/alertTest.htm')
# 點擊彈窗按鈕
driver.find_element_by_name('b1').click()
a1 = driver.switch_to.alert # 通過switch_to.alert切換到alert
sleep(1)
print(a1.text) # text屬性輸出alert的文本
a1.accept() # alert「確認」
sleep(3)
driver.quit()
整體而言,alert.py的源碼是很簡單的,只要就去看下,會發現都是很容易理解的,源碼都是看多了後才會掌握得更多。