selenium自動化之處理瀏覽器警告彈窗
有的網站會彈出類似如下圖的警告彈窗,你會發現這種彈窗在html原始碼中怎麼也定位不到,接下來將介紹這種彈窗的處理方式。
其實這種彈窗是不屬於html的元素的,他是屬於瀏覽器自帶的彈窗,所以用定位元素的方法是定位不了的。
瀏覽器的警告彈窗一共有三種:
第一種:
解決方案:
1.先使用 driver.switch_to.alert 切換到警告彈窗上(注意,有時候切換前需要加個等待)
2.text方法可以獲取到彈窗上的文字
3.accept()方法相當於點選確定按鈕
4.dismiss()方法相當於點選取消按鈕
程式碼:
time.sleep(2) a = driver.switch_to.alert#新方法,切換alert # a = driver.switch_to_alert()#老方法,切換alert print(a.text)# 獲取彈窗上的文字 a.accept()# 確認,相當於點選[確定]按鈕 # a.dismiss()# 取消,相當於點選[取消]按鈕
結果:
輸出彈窗上的文字內容
第二種:
解決方案(其實這種和第一種彈窗的處理方法一樣的):
1.先使用 driver.switch_to.alert 切換到警告彈窗上(注意,有時候切換前需要加個等待)
2.text方法可以獲取到彈窗上的文字
3.accept()方法相當於點選確定按鈕
4.dismiss()方法相當於關閉彈窗
程式碼:
time.sleep(2) a = driver.switch_to.alert#新方法,切換alert # a = driver.switch_to_alert()#老方法,切換alert print(a.text)# 獲取彈窗上的文字 a.accept()# 確認,相當於點選[確定]按鈕 # a.dismiss()# 取消,相當於點選關閉彈窗
第三種:
解決方案(其實這種彈窗處理只是多加了一個方法):
1.先使用 driver.switch_to.alert 切換到警告彈窗上(注意,有時候切換前需要加個等待)
2.accept()方法相當於點選確定按鈕
3.dismiss()方法相當於關閉彈窗
4.send_keys()相當於在彈窗的輸入框中輸入文字
程式碼:
time.sleep(2) a = driver.switch_to.alert#新方法,切換alert # a = driver.switch_to_alert()#老方法,切換alert a.send_keys('Kevin-liutianping') # 在彈窗上的輸入框中輸入文字內容 a.accept()# 確認,相當於點選[確定]按鈕 # a.dismiss()# 取消,相當於點選[取消]按鈕