1. 程式人生 > >selenium自動化之處理瀏覽器警告彈窗

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() # 取消,相當於點選[取消]按鈕