Selenium alert 弹窗处理的示例代码


Posted in Python onAugust 06, 2020

selenium提供switch_to_alert方法:捕获弹出对话框(可以定位alert、confirm、prompt对话框)

switch_to_alert()    --定位弹出对话框

text()               --获取对话框文本值

accept()             --相当于点击“确认”

dismiss()            --相当于点击“取消”

send_keys()          --输入值(alert和confirm没有输入对话框,所以就不用能用了,只能使用在prompt里)

页面弹窗有 3 种类型:

  • alert(警告信息)
  • confirm(确认信息)
  • prompt(提示输入)

对于页面出现的 alert 弹窗,Selenium 提供如下方法:

序号 方法/属性 描述
1 accept() 接受
2 dismiss() 取消
3 text 获取显示的文本
4 send_keys() 输入内容

对应处理方式:

  1. alert(警告信息):WebDriver.switch_to.alert.accept()
  2. confirm(确认信息):
    1. WebDriver.switch_to.alert.accept()
    2. WebDriver.switch_to.alert.dismiss()
  3. prompt(提示输入):WebDriver.switch_to.alert.send_keys()

alert(警告信息)弹出框

alert(警告信息)弹出框,目的是提示通知信息,只需要用户看完点击确认即可。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome() # 打开浏览器
driver.get("http://sahitest.com/demo/alertTest.htm") # 跳转至测试页面
sleep(1)
element = driver.find_element_by_name("b1") # 定位
element.click() # 点击
sleep(1)
alert = driver.switch_to.alert # 切换到弹窗
print(alert.text) # 打印弹窗显示的信息:Alert Message
alert.accept() # 接受
sleep(2)

driver.quit() # 关闭浏览器

confirm(确认信息)弹出框

confirm(确认信息)弹出框,主要是让用户来确定是否要执行某个操作。比如,淘宝,京东等,删除订单是弹出此类弹出,让用户确定是否删除,避免用户误操作。

confirm(确认信息)弹出框提供两种选择,“确认” 或者 “取消”。只需要选择其中一个即可:

  • 确认:WebDriver.switch_to.alert.accept()
  • 取消:WebDriver.switch_to.alert.dismiss()
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome() # 打开浏览器
driver.get("http://sahitest.com/demo/confirmTest.htm") # 跳转至测试页面
sleep(1)
element = driver.find_element_by_name("b1") # 定位
# 1、接受
element.click() # 点击
sleep(1)
alert = driver.switch_to.alert # 切换到弹窗
print(alert.text) # 打印弹窗显示的信息:Alert Message
alert.accept() # 接受
sleep(2)

# 2、取消
element.click() # 点击
sleep(1)
alert = driver.switch_to.alert # 切换到弹窗
print(alert.text) # 打印弹窗显示的信息:
alert.dismiss()
sleep(2)

driver.quit() # 关闭浏览器

prompt(提示输入)弹出框

prompt(提示输入)弹出框,目的是需要用户先输入信息,再做提交。Selenium 提供输入信息的方法是:

WebDriver.switch_to.alert.send_keys()
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome() # 打开浏览器
driver.get("http://sahitest.com/demo/promptTest.htm") # 跳转至测试页面
sleep(1)
element = driver.find_element_by_name("b1") # 定位
# 1、接受
element.click() # 点击
sleep(1)
alert = driver.switch_to.alert # 切换到弹窗
print(alert.text) # 打印弹窗显示的信息:Alert Message
alert.send_keys("自动化测试") # 输入内容
sleep(1)
alert.accept() # 接受
sleep(2)

driver.quit() # 关闭浏览器

注意 : 有些弹窗并非浏览器的 alert 窗口,而是 html元素,对于这种对话框,只需要通过之前介绍的选择器选中,并进行相应的操作即可。

总结

Selenium alert 弹窗处理的示例代码

到此这篇关于Selenium alert 弹窗处理的示例代码的文章就介绍到这了,更多相关Selenium alert 弹窗内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
python 读写中文json的实例详解
Oct 29 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
python的pandas工具包,保存.csv文件时不要表头的实例
Jun 14 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
对python中dict和json的区别详解
Dec 18 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
python 实现 hive中类似 lateral view explode的功能示例
May 18 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Python如何进行时间处理
Aug 06 #Python
Python学习笔记之装饰器
Aug 06 #Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 #Python
Python爬虫防封ip的一些技巧
Aug 06 #Python
Python无损压缩图片的示例代码
Aug 06 #Python
通过实例简单了解python yield使用方法
Aug 06 #Python
Python切片列表字符串如何实现切换
Aug 06 #Python
You might like
php smarty模版引擎中的缓存应用
2009/12/11 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
拖动时防止选中
2017/02/03 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python根据文件名批量转移图片的方法
2018/10/21 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
考试不及格检讨书
2014/01/09 职场文书
机电一体化专业求职信
2014/07/22 职场文书
2014年应急工作总结
2014/12/11 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android