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"> ...
最新文章
- linux 网络传输压塑文件,萌新的Linux学习之路(十一)文件压缩传输
- 【cJson】JSON的基本概念
- qt开发环境 - 简易二进制文件打开,串口自发自收
- 树上倍增一些理解和写法
- vue2.0 element-ui中的el-select选择器无法显示选中的内容
- java hiveconf_Java学习路线分享hive的运行方式
- conda和Anaconda的区别:
- kickstart-F
- java 打印request的原始请求数据
- zui消息推送服务器,ZUI
- 本周AI热点回顾:十四五规划“人工智能第一!”;深度学习漫画第一卷现已开源;英伟达GPU“屠榜”MLPerf
- 华硕z170-p+英特尔i7-6700k+16GB黑苹果EFI引导文件
- 微趣能Weiqn(微信源码下载)V1.5.0.2beta官方版
- UMI+TS项目 配置多环境打包
- jwt token使用autho0-jwt框架使用(二)
- Github每日精选(第24期):python的浏览器MechanicalSoup
- 一文读懂VargFacenet
- 英语话题 Health
- Redis 事件机制详解
- 最高薪14.5k!这个“寒冬”汇智动力火力全开!