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的源碼是很簡單的,只要就去看下,會發現都是很容易理解的,源碼都是看多了後才會掌握得更多。