Python 消息框的處理

在實際系統中,在完成某些操做時會彈出對話框來提示,主要分爲"警告消息框","確認消息框","提示消息對話"三種類型的對話框。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_alert()   #定位彈出對話
  • text()                   #獲取對話框文本值
  • accept()                   #至關於點擊"確認"
  • dismiss()                  #至關於點擊"取消"
  • send_keys()              # 輸入值,這個alert和confirm沒有輸入對話框,因此這裏就不能用了,因此這裏只能使用在prompt這裏。

爲了便於顯示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()
複製代碼
相關文章
相關標籤/搜索