python+selenium 处理alert弹出框
文章目錄
- 前言
- 一、alert彈出框類型?
- 二、使用方法
- 1.alert用法
- 2.confirm用法
- 3.prompt用法
 
- 三、如何去掉自定義彈窗
- 總結
前言
在做自動化測試時,對于alert類型的彈出框如果不做處理,就無法對頁面進行定位等下一步操作,那么alert類型的彈出框有哪些呢?相應的彈出框應該如何做處理呢?下面將一一介紹
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、alert彈出框類型?
alert彈出框包含三種:
 alert 提醒對話框
 confirm 確認對話框
 prompt 要求用戶輸入,然后返回結果的對話框
alert-alert彈出框示例:
 
 alert-confirm彈出框示例:
 
 alert-prompt彈出框示例:
 
二、使用方法
switch_to.alert 定位到alert/confirm/prompt text 返回alert/confirm/prompt 中的文字信息。 accept 點擊確認按鈕。 dismiss 點擊取消按鈕,如果有的話。 send_keys 輸入值,這個alert\confirm 沒有對話框就不能用了,不然會報錯。基本思路:先利用方法switch_to.alert定位到alert(alert/confirm/prompt)彈出框(注意:對于三種類型的alert彈出框定位到彈出框的方法都一樣),再進行相應的處理(確認/取消/輸入值)
 
1.alert用法
代碼如下(示例):
submit1 = driver.find_element_by_name("Submit") submit1.click() # 1.處理alert彈出框(alert) alert = driver.switch_to.alert sleep(3) # 1.1獲取彈出框文本值 alert_content = alert.text print(alert_content) # 1.2點擊確認按鈕 alert.accept()2.confirm用法
代碼如下(示例):
# 2.處理alert彈出框(confirm) submit2 = driver.find_element_by_name("Submit2") submit2.click() confirm = driver.switch_to.alert sleep(2) print(confirm.text) # confirm.accept() # 點擊“確認”按鈕 confirm.dismiss() # 點擊“取消”按鈕 sleep(2) confirm.accept()3.prompt用法
代碼如下(示例):
# 3.處理alert彈出框(prompt) submit3 = driver.find_element_by_name("Submit3") submit3.click() prompt = driver.switch_to.alert prompt.send_keys("大力水手吃菠菜") # 這里輸入框中看不到輸入的文字 sleep(2) prompt.accept() sleep(2) prompt.accept()三、如何去掉自定義彈窗
對于自己定義的彈窗,如果不想每次測試網(wǎng)頁前,通過模擬點擊等操作去除彈窗,有一個比較“暴力”的方法–直接通過js代碼塊,將對應的彈窗顯示屬性設置為none,這樣彈窗就不會出現(xiàn)啦
下面通過一個小例子演示如何去除自定義彈窗,要求:去掉圖中的對話框彈窗
 在F12模式下,定位到該對話框,將其樣式的display屬性值設置為none
代碼如下(示例):
# 利用js代碼塊去除自定義彈窗 js1 = 'document.getElementById('div_company_mini').style.display='none';'# div_company_mini為彈窗對應的iddriver.execute_script(js1)實現(xiàn)結果如下圖:
 
這里多提一嘴,如何在F12模式下查看js代碼(去除彈窗是否生效)是否正確?有兩個方法:
(1)F12模式下,在控制臺輸入js語句,回車,看彈窗是否去除
 
 (2)F12模式下直接修改源代碼
源代碼如下圖:
 
 修改方法如下圖:
 
總結
小白一枚,如有錯誤,還請指出,謝謝~
總結
以上是生活随笔為你收集整理的python+selenium 处理alert弹出框的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Arduino循迹小车教程三----测试
- 下一篇: sip账号服务器,如何解决“sip账号未
