前戏

我们常见的弹框有三种,一种是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. 使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战
  2. C#异步编程的实现方式(1)——异步委托
  3. 可重入函数、不可重入函数,注意事项
  4. ubuntu 10.10 配置 tomcat6
  5. 安装shopex注意事项
  6. 《剑指offer》-- 第一个只出现一次的字符、数组中只出现一次的数字、字符流中第一个不重复的字符、数组中重复的数字
  7. 针对十类数据从业人员,最好的工具推荐
  8. 无向图的遍历_大鲨说算法与数据结构图(一)
  9. “安装程序无法定位现有系统分区,也无法创建新的系统分区”提示
  10. nginx开机启动脚本
  11. HDU1276 士兵队列训练问题【模拟+array+vector+list】
  12. 索引和数据完整性约束的总结
  13. HTML+CSS纯静态页面布局的理解(一)
  14. 【学习笔记】Baby Step Giant Step算法及其扩展
  15. URP关于多个摄相机的性能优化
  16. Jpress项目学习纪录片(一) -- 环境搭建
  17. Raptor实践参考:要么错误要么求和
  18. 《Spring Cloud实战指南》快速学习路线图(2022版)
  19. 小米笔记本“突然”不能调整屏幕亮度
  20. 微信服务商-小程序支付-商户传入的appid参数不正确,请联系商户处理

热门文章

  1. 在线问题反馈模块实战(十五)​:实现在线更新反馈状态功能
  2. 用Illustrator制作荷花的矢量图
  3. 模块化:CommonJS规范
  4. 【91xcz】如何屏蔽Windows 7中智能排列的功能
  5. oracle之创建和管理数据库用户账户
  6. 联想新零售从概念走向现实,或诞生店内版“拼多多”?
  7. 图的存储方式 // oj3116 oj3117 oj3118 oj3467
  8. 有关Windows 10X,你需要知道的一些信息
  9. 劳务派遣与劳务外包的区别
  10. 2022电大国家开放大学网上形考任务-数学思想与方法非免费(非答案)