Selenium alert 彈窗處理的示例代碼
selenium提供switch_to_alert方法:捕獲彈出對話框(可以定位alert、confirm、prompt對話框)
switch_to_alert() --定位彈出對話框
text() --獲取對話框文本值
accept() --相當(dāng)于點(diǎn)擊“確認(rèn)”
dismiss() --相當(dāng)于點(diǎn)擊“取消”
send_keys() --輸入值(alert和confirm沒有輸入對話框,所以就不用能用了,只能使用在prompt里)
頁面彈窗有 3 種類型:
- alert(警告信息)
- confirm(確認(rèn)信息)
- prompt(提示輸入)
對于頁面出現(xiàn)的 alert 彈窗,Selenium 提供如下方法:
序號 | 方法/屬性 | 描述 |
---|---|---|
1 | accept() | 接受 |
2 | dismiss() | 取消 |
3 | text | 獲取顯示的文本 |
4 | send_keys() | 輸入內(nèi)容 |
對應(yīng)處理方式:
- alert(警告信息):WebDriver.switch_to.alert.accept()
- confirm(確認(rèn)信息):
- WebDriver.switch_to.alert.accept()
- WebDriver.switch_to.alert.dismiss()
- prompt(提示輸入):WebDriver.switch_to.alert.send_keys()
alert(警告信息)彈出框
alert(警告信息)彈出框,目的是提示通知信息,只需要用戶看完點(diǎn)擊確認(rèn)即可。
from selenium import webdriver from time import sleep driver = webdriver.Chrome() # 打開瀏覽器 driver.get("http://sahitest.com/demo/alertTest.htm") # 跳轉(zhuǎn)至測試頁面 sleep(1) element = driver.find_element_by_name("b1") # 定位 element.click() # 點(diǎn)擊 sleep(1) alert = driver.switch_to.alert # 切換到彈窗 print(alert.text) # 打印彈窗顯示的信息:Alert Message alert.accept() # 接受 sleep(2) driver.quit() # 關(guān)閉瀏覽器
confirm(確認(rèn)信息)彈出框
confirm(確認(rèn)信息)彈出框,主要是讓用戶來確定是否要執(zhí)行某個(gè)操作。比如,淘寶,京東等,刪除訂單是彈出此類彈出,讓用戶確定是否刪除,避免用戶誤操作。
confirm(確認(rèn)信息)彈出框提供兩種選擇,“確認(rèn)” 或者 “取消”。只需要選擇其中一個(gè)即可:
- 確認(rèn):WebDriver.switch_to.alert.accept()
- 取消:WebDriver.switch_to.alert.dismiss()
from selenium import webdriver from time import sleep driver = webdriver.Chrome() # 打開瀏覽器 driver.get("http://sahitest.com/demo/confirmTest.htm") # 跳轉(zhuǎn)至測試頁面 sleep(1) element = driver.find_element_by_name("b1") # 定位 # 1、接受 element.click() # 點(diǎn)擊 sleep(1) alert = driver.switch_to.alert # 切換到彈窗 print(alert.text) # 打印彈窗顯示的信息:Alert Message alert.accept() # 接受 sleep(2) # 2、取消 element.click() # 點(diǎn)擊 sleep(1) alert = driver.switch_to.alert # 切換到彈窗 print(alert.text) # 打印彈窗顯示的信息: alert.dismiss() sleep(2) driver.quit() # 關(guān)閉瀏覽器
prompt(提示輸入)彈出框
prompt(提示輸入)彈出框,目的是需要用戶先輸入信息,再做提交。Selenium 提供輸入信息的方法是:
WebDriver.switch_to.alert.send_keys()
from selenium import webdriver from time import sleep driver = webdriver.Chrome() # 打開瀏覽器 driver.get("http://sahitest.com/demo/promptTest.htm") # 跳轉(zhuǎn)至測試頁面 sleep(1) element = driver.find_element_by_name("b1") # 定位 # 1、接受 element.click() # 點(diǎn)擊 sleep(1) alert = driver.switch_to.alert # 切換到彈窗 print(alert.text) # 打印彈窗顯示的信息:Alert Message alert.send_keys("自動(dòng)化測試") # 輸入內(nèi)容 sleep(1) alert.accept() # 接受 sleep(2) driver.quit() # 關(guān)閉瀏覽器
注意 : 有些彈窗并非瀏覽器的 alert 窗口,而是 html元素,對于這種對話框,只需要通過之前介紹的選擇器選中,并進(jìn)行相應(yīng)的操作即可。
總結(jié)
到此這篇關(guān)于Selenium alert 彈窗處理的示例代碼的文章就介紹到這了,更多相關(guān)Selenium alert 彈窗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 使用tempfile包輕松無痕的運(yùn)行代碼
大家好,我們知道軟件運(yùn)行過程中一般會(huì)在指定位置生成臨時(shí)文件,這些資源不要輕易刪除,可能是過程文件,定時(shí)清理是必要的,今天給大家分享一款工具:tempfile,喜歡本文點(diǎn)贊支持,歡迎收藏學(xué)習(xí)2021-11-11python?數(shù)據(jù)保存為npy和npz格式并讀取的完整代碼
這篇文章主要介紹了python?數(shù)據(jù)保存為npy和npz格式并讀取,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07python cs架構(gòu)實(shí)現(xiàn)簡單文件傳輸
這篇文章主要為大家詳細(xì)介紹了python cs架構(gòu)實(shí)現(xiàn)簡單文件傳輸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Python TCP通信客戶端服務(wù)端代碼實(shí)例
這篇文章主要介紹了Python TCP通信客戶端服務(wù)端代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Pandas分組聚合之使用自定義函數(shù)方法transform()、apply()
Pandas具有很多強(qiáng)大的功能,transform就是其中之一,利用它可以高效地匯總數(shù)據(jù)且不改變數(shù)據(jù)行數(shù),下面這篇文章主要給大家介紹了關(guān)于Pandas分組聚合之使用自定義函數(shù)方法transform()、apply()的相關(guān)資料,需要的朋友可以參考下2023-01-01解決pyinstaller打包發(fā)布后的exe文件打開控制臺(tái)閃退的問題
今天小編就為大家分享一篇解決pyinstaller打包發(fā)布后的exe文件打開控制臺(tái)閃退的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06詳解Python中的分支和循環(huán)結(jié)構(gòu)
這篇文章主要介紹了Python中的分支和循環(huán)結(jié)構(gòu),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02