有的网站会弹出类似如下图的警告弹窗,你会发现这种弹窗在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()                      # 取消,相当于点击[取消]按钮

selenium自动化之处理浏览器警告弹窗的更多相关文章

  1. Selenium自动化测试之启动浏览器

    Selenium自动化测试之启动浏览器 一.Eclipse新建java工程 1.新建java工程:File->New->Java Project,输入Project name:如AutoT ...

  2. Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)

    前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...

  3. Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。

    Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息.   本文链接:https://blog.csdn.net/qq_38161040/art ...

  4. Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退

    Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退   1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...

  5. Python+Selenium自动化-安装模块和浏览器驱动操作方法

    Python+Selenium自动化-安装模块和浏览器驱动操作方法 1.安装模块文件 pip install selenium 2.安装浏览器驱动 我们主要用的浏览器驱动有chrome浏览器.fire ...

  6. python+selenium自动化软件测试(第2章):WebDriver API

    2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...

  7. Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结

    由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...

  8. 爬虫之 图片懒加载, selenium , phantomJs, 谷歌无头浏览器

    一.图片懒加载 懒加载 :    JS 代码  是页面自然滚动    window.scrollTo(0,document.body.scrollHeight)   (重点) bro.execute_ ...

  9. 浏览器控制之 selenium,phantomJs谷无头浏览器

    目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...

随机推荐

  1. 博客存档TensorFlow入门一 1.4编程练习

        import tensorflow as tf import numpy import matplotlib.pyplot as plt #from sklearn.model_selecti ...

  2. HDU 1058(打表)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1058 Humble Numbers Time Limit: 2000/1000 MS (Java/O ...

  3. Linux API fork 子进程 创建 & 无名管道通信

    #include<unistd.h> #include<stdio.h> int main() { ]; ]; pipe(filedes); printf("my p ...

  4. 学习使用 ARM 的 math 库,据说 速度比C标准库 自带的 快 几十倍 到几百倍

    1.首先 添加 库 到 工程 ,路径 如下 C:\Keil\ARM\CMSIS\Lib\ARM 2.包含头文件以及在 工程里 添加 头文件 路径如下  C:\Keil\ARM\CMSIS\Includ ...

  5. 【Javascript-基础-Date】本地时间与UTC(GMT)时间转换

    UTC(GMT) 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinat ...

  6. paxos协议(1)-朴素paxos

    前言 学习paxos协议,最困惑我的两点是: 1. 朴素paxos是怎么样的?这部分主要是原理: 2. paxos协议是怎么运用到分布式系统解决问题的.因为很多博客的开篇说paxos协议可以运用在很多 ...

  7. [JLOI2014]松鼠的新家(线段树,树链剖分)

    题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在”树“上. 松鼠想邀请小熊维尼前 ...

  8. 安装mysql时出现initialize specified but the data directory has files in in.Aborting.该如何解决

    eclipse中写入sql插入语句时,navicat中显示的出现乱码(???). 在修改eclipse工作空间编码.navicate中的数据库编码.mysql中my.ini中的配置之后还是出现乱码. ...

  9. 虚拟机VMware安装linux无法上网解决办法

    虚拟机VMware安装linux无法上网解决办法   Linux网络设置: 依次单击[System]-->[Preferences]-->[Network Connections],如下图 ...

  10. centos7 关闭防火墙

    centos7 关闭防火墙 1.firewall相关的操作    查看防火墙状态 firewall-cmd    --state 关闭防火墙 systemctl  stop   firewalld.s ...