前戏

我们常见的弹框有三种,一种是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弹框相关推荐

  1. element js 包含字符_selenium3.x(10)js弹框处理

    web应用中,经常会遇到弹框.不处理弹框,页面其他元素都是不能操作的.js弹框有3种:alert警告框.confirm确认窗口.prompt信息输入窗口. webdriver提供了处理这3种弹框的方法 ...

  2. js弹框带传值父窗口给子框_layer弹窗,父页面 子iframe 兄弟iframe之间传值,函数调用...

    在这里记录下前端layer弹窗 父,子,兄弟弹窗 之间参数传递以及函数调用 ① [父-->子] [子-->父] 前言 //子弹窗给父页面元素赋值 parent.$("#paren ...

  3. python爬虫selenium操作下拉框详解

    使用python爬虫的selenium操作网页的下拉框. 以该网站为例:https://www.17sucai.com/pins/demo-show?id=5926 该网页下存在多个可供测试的下拉框. ...

  4. selenium 火狐下载弹框去除

    //下载路径 profile.set_preference('browser.download.dir', 'd:\') //0 桌面 ,1 默认,2自定义 profile.set_preferenc ...

  5. 笔记--禁用js弹框

    禁用原系统方法内系统弹框,插入自定义逻辑后恢复 var alertFunc; function notAlert(){alertFunc=window.alert; window.alert=func ...

  6. html弹窗显示表格,js弹框表格,获取数据添加进去dom里面

    js操作DOM是否是你想要的结构?我的问题与你类似,只不过是建立在动态表上 /** 功能实现:1.实现表格添加一行 2.实现表格删除当前行 步骤:1.根据表格id获取当前表格 2.获取表格中的tBod ...

  7. js 弹框确认是否删除

    点击删除的时候可以弹出一个大黑框,里面是确定需要删除吗? <script type="text/javascript" src="/static/js/jquery ...

  8. 原生js弹框Alert插件

    下载地址 一款纯JavaScript库弹出对话框插件,可以创建警报通知,确认弹出框,提示消息等效果.cuteAlert({ type: "success", title: &quo ...

  9. element中的js弹框效果

    1.首先引用js和css <link rel="stylesheet" href="${ctx}/static/css/element.css"> ...

最新文章

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

热门文章

  1. 逃离北京回家创业--生存篇
  2. 计算机软件技术实习项目二(一) 贪吃蛇项目准备
  3. ESP8266连接OneNet云平台的方法
  4. java字符串的定义方法
  5. 征信大数据处理和征信大数据挖掘分析技术的介绍
  6. 30多岁了仍一事无成,除了去工厂上班还有哪些出路?
  7. EXCEL根据基础数据列匹配查询公式
  8. 苹果通知中心服务ANCS协议
  9. skywalking部署
  10. 想要从事云计算方面的工作,需要什么学历?