selenium 处理浏览器警告弹窗

有的网站会弹出类似如下图的警告弹窗,你会发现这种弹窗在 html 源码中怎么也定位不到,接下来将介绍这种弹窗的处理方式。
selenium 处理浏览器警告弹窗
其实这种弹窗是不属于 html 的元素的,他是属于浏览器自带的弹窗,所以用定位元素的方法是定位不了的。

浏览器的警告弹窗一共有三种:

第一种:(有【确定】【取消】按钮的)

selenium 处理浏览器警告弹窗

解决方案:

  1. 先使用 driver.switch_to.alert 切换到警告弹窗上(注意,有时候切换前需要加个等待)

  2.text 方法可以获取到弹窗上的文本

  3.accept() 方法相当于点击确定按钮

  4.dismiss() 方法相当于点击取消按钮

代码:

time.sleep(2)
a = driver.switch_to.alert()     #  切换alert
print(a.text)                    # 获取弹窗上的文本
a.accept()                      # 确认,相当于点击[确定]按钮
a.dismiss()                   # 取消,相当于点击[取消]按钮

第二种:(只有【确定】按钮的)

selenium 处理浏览器警告弹窗

解决方案(其实这种和第一种弹窗的处理方法一样的):

  1. 先使用 driver.switch_to.alert 切换到警告弹窗上(注意,有时候切换前需要加个等待)

  2.text 方法可以获取到弹窗上的文本

  3.accept() 方法相当于点击确定按钮

代码:

time.sleep(2)
a = driver.switch_to.alert()     #  切换alert
print(a.text)                    # 获取弹窗上的文本
a.accept()                      # 确认,相当于点击[确定]按钮

第三种:(有输入对话框的)

selenium 处理浏览器警告弹窗
解决方案(其实这种弹窗处理只是多加了一个方法):

  1. 先使用 driver.switch_to.alert 切换到警告弹窗上(注意,有时候切换前需要加个等待)

  2.accept() 方法相当于点击确定按钮

  3.dismiss() 方法相当于关闭弹窗

  4.send_keys() 相当于在弹窗的输入框中输入文本

代码:

time.sleep(2)
a = driver.switch_to.alert()     #  切换alert
a.send_keys('Kevin-liutianping') # 在弹窗上的输入框中输入文本内容
a.accept()                       # 确认,相当于点击[确定]按钮
a.dismiss()                     # 取消,相当于点击[取消]按钮