selenium--操作JS弹框
前戏
我们常见的弹框有三种,一种是alert弹框,一种是prompt弹框,还有一种是confirm弹框那他们有什么不同呢?不同点就是他们长的不一样,alert弹框有一段文字和一个确定按钮,如下
在来看一下prompt长什么样
confirm长这样
看完上面的三个框,大家应该能区分出什么框是哪种类型的了吧。。。
处理alert弹框
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <input type="button" id="button"onclick="alert('这是一个alert弹出框')" value="单击此按钮"></body> </html>
from selenium import webdriver import time,unittest from selenium.common.exceptions import NoAlertPresentExceptionclass Test_Alert(unittest.TestCase):def test_HandleAlert(self):url = r'E:\JSSCRIPT.html'self.driver = webdriver.Chrome()self.driver.get(url)button = self.driver.find_element_by_id('button')button.click()try:# 使用driver.switch_to.alert()方法获取alert对象alert = self.driver.switch_to_alert()time.sleep(2)# 断言弹出框里的内容self.assertEqual(alert.text, '这是一个alert弹出框')# 调用alert对象的accept()方法,模拟鼠标单击alert弹窗上的“确定”按钮 alert.accept()except NoAlertPresentException as e:print(e)test1 = Test_Alert() test1.test_HandleAlert()
处理prompt弹框
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <input type="button" id="button"onclick="prompt('这是一个prompt弹出框')" value="单击此按钮"></body> </html>
from selenium import webdriver import time,unittest from selenium.common.exceptions import NoAlertPresentExceptionclass Test_prompt(unittest.TestCase):def test_HandleAlert(self):url = r'E:\JSSCRIPT.html'self.driver = webdriver.Chrome()self.driver.get(url)button = self.driver.find_element_by_id('button')button.click()try:# 使用driver.switch_to.alert()方法获取alert对象alert = self.driver.switch_to_alert()time.sleep(2)# 断言弹出框里的内容self.assertEqual(alert.text, '这是一个prompt弹出框')# 往框里输入值alert.send_keys('我要搞自动化。。。') # 没输入但是也没报错time.sleep(4)alert.accept() # 模拟点击确定按钮except NoAlertPresentException as e:print(e)test1 = Test_prompt() test1.test_HandleAlert()
处理confirm弹框
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <input type="button" id="button"onclick="prompt('这是一个confirm弹出框')" value="单击此按钮"></body> </html>
from selenium import webdriver import time,unittest from selenium.common.exceptions import NoAlertPresentExceptionclass Test_confirm(unittest.TestCase):def test_HandleAlert(self):url = r'E:\JSSCRIPT.html'self.driver = webdriver.Chrome()self.driver.get(url)button = self.driver.find_element_by_id('button')button.click()try:# 使用driver.switch_to.alert()方法获取alert对象alert = self.driver.switch_to.alerttime.sleep(2)# 断言弹出框里的内容self.assertEqual(alert.text, '这是一个confirm弹出框')# 往框里输入值alert.send_keys('我要搞自动化。。。') # 没输入但是也没报错time.sleep(4)alert.accept() # 模拟点击确定按钮alert.dismiss() # 点击取消按钮 和上面的取其一except NoAlertPresentException as e:print(e)test1 = Test_confirm() test1.test_HandleAlert()
转载于:https://www.cnblogs.com/zouzou-busy/p/11160503.html
selenium--操作JS弹框相关推荐
- element js 包含字符_selenium3.x(10)js弹框处理
web应用中,经常会遇到弹框.不处理弹框,页面其他元素都是不能操作的.js弹框有3种:alert警告框.confirm确认窗口.prompt信息输入窗口. webdriver提供了处理这3种弹框的方法 ...
- js弹框带传值父窗口给子框_layer弹窗,父页面 子iframe 兄弟iframe之间传值,函数调用...
在这里记录下前端layer弹窗 父,子,兄弟弹窗 之间参数传递以及函数调用 ① [父-->子] [子-->父] 前言 //子弹窗给父页面元素赋值 parent.$("#paren ...
- python爬虫selenium操作下拉框详解
使用python爬虫的selenium操作网页的下拉框. 以该网站为例:https://www.17sucai.com/pins/demo-show?id=5926 该网页下存在多个可供测试的下拉框. ...
- selenium 火狐下载弹框去除
//下载路径 profile.set_preference('browser.download.dir', 'd:\') //0 桌面 ,1 默认,2自定义 profile.set_preferenc ...
- 笔记--禁用js弹框
禁用原系统方法内系统弹框,插入自定义逻辑后恢复 var alertFunc; function notAlert(){alertFunc=window.alert; window.alert=func ...
- html弹窗显示表格,js弹框表格,获取数据添加进去dom里面
js操作DOM是否是你想要的结构?我的问题与你类似,只不过是建立在动态表上 /** 功能实现:1.实现表格添加一行 2.实现表格删除当前行 步骤:1.根据表格id获取当前表格 2.获取表格中的tBod ...
- js 弹框确认是否删除
点击删除的时候可以弹出一个大黑框,里面是确定需要删除吗? <script type="text/javascript" src="/static/js/jquery ...
- 原生js弹框Alert插件
下载地址 一款纯JavaScript库弹出对话框插件,可以创建警报通知,确认弹出框,提示消息等效果.cuteAlert({ type: "success", title: &quo ...
- element中的js弹框效果
1.首先引用js和css <link rel="stylesheet" href="${ctx}/static/css/element.css"> ...
最新文章
- 使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战
- C#异步编程的实现方式(1)——异步委托
- 可重入函数、不可重入函数,注意事项
- ubuntu 10.10 配置 tomcat6
- 安装shopex注意事项
- 《剑指offer》-- 第一个只出现一次的字符、数组中只出现一次的数字、字符流中第一个不重复的字符、数组中重复的数字
- 针对十类数据从业人员,最好的工具推荐
- 无向图的遍历_大鲨说算法与数据结构图(一)
- “安装程序无法定位现有系统分区,也无法创建新的系统分区”提示
- nginx开机启动脚本
- HDU1276 士兵队列训练问题【模拟+array+vector+list】
- 索引和数据完整性约束的总结
- HTML+CSS纯静态页面布局的理解(一)
- 【学习笔记】Baby Step Giant Step算法及其扩展
- URP关于多个摄相机的性能优化
- Jpress项目学习纪录片(一) -- 环境搭建
- Raptor实践参考:要么错误要么求和
- 《Spring Cloud实战指南》快速学习路线图(2022版)
- 小米笔记本“突然”不能调整屏幕亮度
- 微信服务商-小程序支付-商户传入的appid参数不正确,请联系商户处理
热门文章
- 在线问题反馈模块实战(十五)​:实现在线更新反馈状态功能
- 用Illustrator制作荷花的矢量图
- 模块化:CommonJS规范
- 【91xcz】如何屏蔽Windows 7中智能排列的功能
- oracle之创建和管理数据库用户账户
- 联想新零售从概念走向现实,或诞生店内版“拼多多”?
- 图的存储方式 // oj3116 oj3117 oj3118 oj3467
- 有关Windows 10X,你需要知道的一些信息
- 劳务派遣与劳务外包的区别
- 2022电大国家开放大学网上形考任务-数学思想与方法非免费(非答案)