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() # 取消,相当于点击[取消]按钮
selenium自动化之处理浏览器警告弹窗的更多相关文章
- Selenium自动化测试之启动浏览器
Selenium自动化测试之启动浏览器 一.Eclipse新建java工程 1.新建java工程:File->New->Java Project,输入Project name:如AutoT ...
- Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)
前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...
- Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息。
Python+selenium 自动化-启用带插件的chrome浏览器,调用浏览器带插件,浏览器加载配置信息. 本文链接:https://blog.csdn.net/qq_38161040/art ...
- Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退
Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退 1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...
- Python+Selenium自动化-安装模块和浏览器驱动操作方法
Python+Selenium自动化-安装模块和浏览器驱动操作方法 1.安装模块文件 pip install selenium 2.安装浏览器驱动 我们主要用的浏览器驱动有chrome浏览器.fire ...
- python+selenium自动化软件测试(第2章):WebDriver API
2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...
- 爬虫之 图片懒加载, selenium , phantomJs, 谷歌无头浏览器
一.图片懒加载 懒加载 : JS 代码 是页面自然滚动 window.scrollTo(0,document.body.scrollHeight) (重点) bro.execute_ ...
- 浏览器控制之 selenium,phantomJs谷无头浏览器
目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...
随机推荐
- 进程通信-Queue
进程通信-Queue Queue消息队列是python进程通信的其中一种方式.需要引入multiprocessing包中的Queue函数(这是函数,不是类). 有一个queue包,里面也有Queue, ...
- Order by排序
asc 升序(默认),desc 降序 order by 后面 可以加 列.表达式.别名.序号(从1开始) desc; --表达式 年薪 from emp order by 年薪 desc; --别名 ...
- Oracle下通过EXPDP导出某用户下的所有表,实例
一开始在所数据库表导入,导出的时候,经常发现含有BLOB等大数据类型文件无法简单正常的导入导出(imp/dmp),然后在网上得知oracle 10以后有了(impdp/dmpdp)命令,数据导入导出的 ...
- python2与python3的input函数的区别
Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型. Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获 ...
- react中如何获取onclick事件调用元素的dom对象
今天终于有时间写博客了, 前几天项目有个需求,我感觉用dom操作兄弟元素实现比较方便,但是前端用的react框架不能用jquery的$(this)获取当前元素,查了好多资料和尝试后写下总结: 在HTM ...
- jQuery属性操作之.attr()
目录 .attr() 调用形式:$("xxx").attr(name) 调用形式:$("xxx").attr(name,value); 调用形式:$(" ...
- td内的所有数字格式化保留两位小数
$("td").each(function(i,el){ var td = parseFloat($(el).text()); if(!isNaN(td)){ $(el).text ...
- iOS 12.0-12.1.2 越狱教程
unc0ver V3.0.0~b29 越狱工具已经开始公测,支持搭载 A8X-A11 处理器的 iOS 12.0-12.1.2 设备完整越狱,Cydia 商店和 Substrate 插件可正常安装并运 ...
- elasticsearch简单的安装以及集群配置详解
首先要确保有java8的环境,安装方法如下(centos) wget --no-check-certificate --no-cookies --header "Cookie: oracle ...
- spark or sparkstreaming的内存泄露问题?
关于sparkstreaming的无法正常产生数据---->到崩溃---->到数据读写极为缓慢(或块丢失?)问题 前两阶段请看我的博客:https://www.cnblogs.com/wa ...