三種alert\confirm\prompt彈窗的處理方法


alert\confirm\prompt

前言   

原文:https://www.cnblogs.com/zidonghua/p/7430083.html
不是所有的彈出框都叫alert,在使用alert方法前,先要識別出到底是不是alert。先認清楚alert長什么樣子,下次碰到了,就可以用對應方法解決。
alert\confirm\prompt彈出框操作主要方法有:
text:獲取文本值
accept() :點擊"確認"
dismiss() :點擊"取消"或者叉掉對話框
send_keys() :輸入文本值 --僅限於prompt,在alert和confirm上沒有輸入框

一、認識alert\confirm\prompt
     1.如下圖,從上到下依次為alert\confirm\prompt,先認清楚長什么樣子,以后遇到了就知道如何操作了。

    2.html源碼如下(有興趣的可以copy出來,復制到txt文本里,后綴改成html就可以了,然后用瀏覽器打開):

復制代碼
<html>  
   <head>
     <title>Alert</title>  
    </head>  
<body>  
<input id = "alert" value = "alert" type = "button" onclick = "alert('您關注了yoyoketang嗎?');"/>  
<input id = "confirm" value = "confirm" type = "button" onclick = "confirm('確定關注微信公眾號:yoyoketang?');"/>  
<input
id = "prompt" value = "prompt" type = "button" onclick = "var name = 
prompt('請輸入微信公眾號:','yoyoketang'); document.write(name) "/>    
</body>   
</html>  
復制代碼

二、alert操作

   1.先用switch_to_alert()方法切換到alert彈出框上
    2.可以用text方法獲取彈出的文本 信息
    3.accept()點擊確認按鈕
    4.dismiss()相當於點右上角x,取消彈出框
   (url的路徑,直接復制瀏覽器打開的路徑)

三、confirm操作
   1.先用switch_to_alert()方法切換到alert彈出框上
    2.可以用text方法獲取彈出的文本 信息
    3.accept()點擊確認按鈕
    4.dismiss()相當於點取消按鈕或點右上角x,取消彈出框
(url的路徑,直接復制瀏覽器打開的路徑)

四、prompt操作
   1.先用switch_to_alert()方法切換到alert彈出框上
    2.可以用text方法獲取彈出的文本 信息
    3.accept()點擊確認按鈕
    4.dismiss()相當於點右上角x,取消彈出框
    5.send_keys()這里多個輸入框,可以用send_keys()方法輸入文本內容
(url的路徑,直接復制瀏覽器打開的路徑)

五、select遇到的坑
    1.在操作百度設置里面,點擊“保存設置”按鈕時,alert彈出框沒有彈出來。(Ie瀏覽器是可以的)
    2.分析原因:經過慢慢調試后發現,在點擊"保存設置"按鈕時,由於前面的select操作后,失去了焦點
    3.解決辦法:在select操作后,做個click()點擊操作

s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每頁顯示20條")
time.sleep(3)
s.click()

 

 六、最終代碼

復制代碼
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
driver = webdriver.Firefox()
url = "https://www.baidu.com"
driver.get(url)
driver.implicitly_wait(20)
# 鼠標移動到“設置”按鈕
mouse = driver.find_element_by_link_text("設置")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text("搜索設置").click()
# 通過text:select_by_visible_text()
s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每頁顯示20條")
time.sleep(3)
s.click()
driver.find_element_by_link_text("保存設置").click()
time.sleep(5)
# 獲取alert彈框
t = driver.switch_to_alert()
print t.text
t.accept()
復制代碼

這一篇應該比較簡單,alert相關的內容比較少,雖然有一些頁面也有彈窗,但不是所有的彈窗都叫alert。

alert的彈出框界面比較簡潔,調用的是Windows系統彈窗警告框,沒花里胡哨的東西,還是很容易區分的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM