在實際系統中,在完成某些操做時會彈出對話框來提示,主要分爲"警告消息框","確認消息框","提示消息對話"三種類型的對話框。html
1.警告消息框(alert)
警告消息框提供了一個"肯定"按鈕讓用戶關閉該消息框,而且該消息框是模式對話框,也就是說用戶必須先關閉該消息框而後才能繼續進行操做。web
2.確認消息框(confirm)測試
確認消息框向用戶提示一個"是與否"問題,用戶能夠根據選擇"肯定"按鈕和"取消"按鈕。ui
3.提示消息對話(prompt)
提示消息框提供了一個文本字段,用戶能夠在此字段輸入一個答案來響應您的提示。該消息框有一個"肯定"按鈕和一個"取消"按鈕。選擇"確認"會響應對應的提示信息,選擇"取消"會關閉對話框。spa
selenium 提供switch_to_alert()方法定位到 alert/confirm/prompt對話框。使用 text/accept/dismiss/send_keys 進行操做,這裏注意的是send_keys只能對prompt進行操做。code
爲了便於顯示switch_to_alter()方法,下面我這邊寫了一個小小的頁面,這裏我把三種對話框所有包括下來,而後來進行模擬實際過程當中遇到的對話框。htm
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title></title> </head> <body> <div align="center"> <h4>hello girl</h4> <input type="button" onclick="showPro()" value="輸入框彈窗按鈕"/> <input type="button" onclick="showAlert2()" value="提示彈窗按鈕"/> <input type="button" onclick="showAlert()" value="確認彈窗按鈕"/><br><br><br> <span id="textSpan"></span> </div> </body> <script> function showAlert(){ document.getElementById("textSpan").innerHTML=""; if(confirm("你是帥哥嗎?")){ document.getElementById("textSpan").innerHTML="<font style='color: red;'>您爲什麼如此自信?</font>"; }else{ document.getElementById("textSpan").innerHTML="<font style='color: red;'>您爲什麼如此謙虛?</font>"; } } function showPro(){ document.getElementById("textSpan").innerHTML=""; con = prompt("輸入1爲強哥聰明,輸入2爲左哥笨"); if(con==1){ document.getElementById("textSpan").innerHTML="<font style='color: green;'>強哥是真聰明啊</font>"; }else if(con==2){ document.getElementById("textSpan").innerHTML="<font style='color: green;'>左哥是真笨啊</font>"; }else{ document.getElementById("textSpan").innerHTML="<font style='color: red;'>您沒有按要求輸入,請從新輸入</font>"; } } function showAlert2(){ document.getElementById("textSpan").innerHTML=""; alert("用我三世煙火,換你一世迷離"); } </script> </html>
下面的三個例子,主要來演示如何處理上面說的三種對話框。 blog
1.處理alert對話框。ip
#-*-coding:utf-8 -*- import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/hunk/Desktop/alter.html') '''獲取alert對話框的按鈕,點擊按鈕,彈出alert對話框''' driver.find_element_by_xpath('/html/body/div/input[2]').click() '''獲取alert對話框''' alert = driver.switch_to_alert() '''添加等待時間''' time.sleep(2) '''獲取警告對話框的內容''' print (alert.text) #打印警告對話框內容 alert.accept() #alert對話框屬於警告對話框,咱們這裏只能接受彈窗 '''添加等待時間''' time.sleep(2) driver.quit()
2.處理confirm對話框utf-8
#-*-coding:utf-8 -*- import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('file:///C:/Users/hunk/Desktop/alter.html') '''獲取confirm對話框的按鈕,點擊按鈕,彈出confirm對話框''' driver.find_element_by_xpath('/html/body/div/input[3]').click() '''獲取confirm對話框''' dialog_box = driver.switch_to_alert() '''添加等待時間''' time.sleep(2) '''獲取對話框的內容''' print (dialog_box.text) #打印警告對話框內容 '''點擊【確認】顯示"您爲什麼如此自信?"''' dialog_box.accept() #接受彈窗 print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) time.sleep(2) '''再次獲取confirm對話框的按鈕,點擊按鈕,彈出confirm對話框''' driver.find_element_by_xpath('/html/body/div/input[3]').click() '''再次獲取confirm對話框''' dialog_box = driver.switch_to_alert() '''點擊【取消】顯示"您爲什麼如此謙虛?"''' time.sleep(2) dialog_box.dismiss() #關閉獲取取消對話框 print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) driver.quit()
3.處理prompt對話框
#-*-coding:utf-8 -*- import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() '''獲取對話框輸入2,而且點擊【確認】,文本框內提示<左哥是真笨啊>,點擊【取消】文本框內提示<您沒有按要求輸入,請從新輸入>''' driver.get('file:///C:/Users/hunk/Desktop/alter.html') '''獲取prompt對話框的按鈕,點擊按鈕,彈出confirm對話框''' driver.find_element_by_xpath('/html/body/div/input[1]').click() '''獲取prompt對話框''' dialog_box = driver.switch_to_alert() '''添加等待時間''' time.sleep(2) '''獲取對話框的內容''' print (dialog_box.text) #打印警告對話框內容 dialog_box.send_keys("2") #彈出框內輸入2 dialog_box.accept() #接受 print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #獲取關閉彈窗結果 #獲取確認彈窗結果 '''這裏等待幾秒在測試取消''' time.sleep(2) #************************點擊【取消】,而且獲取顯示結果********************** driver.find_element_by_xpath('/html/body/div/input[1]').click() '''獲取prompt對話框''' dialog_box = driver.switch_to_alert() '''添加等待時間''' time.sleep(2) dialog_box.dismiss() #關閉對話框 print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text) #獲取關閉彈窗結果 time.sleep(2) driver.quit()