前戏

我们常见的弹框有三种,一种是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 NoAlertPresentException class 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 NoAlertPresentException class 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 NoAlertPresentException class 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.alert
time.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()

selenium--操作JS弹框的更多相关文章

  1. js弹框处理

    # -*- coding:utf-8 -*- """ js弹框处理 """ from selenium import webdriver d ...

  2. js弹框3秒后自动消失

    开发中有时候会需要最出弹框后,过几秒自动消失的效果,下面给大家分享一下我自己做的一个小案例. 案例中的弹框使用的是bootstrap里面的模态框,实现自动消失则用的是js中的setInterval方法 ...

  3. selenium对Alert弹框的多种处理

    Alert弹框是一个很烦人的控件,因为当前页面如果弹出了该弹框,你必须要处理它,不然你就不能操作页面的其它元素,下面我列出了alert弹框在多种场景下的处理办法. 明确知道系统哪个地方会弹alert ...

  4. 【前端开发】--js弹框

    js三种弹框 一.普通弹框 这类弹框就是仅仅是个提示作用,并不会做其它操作 关键词:alert()    这个没啥好说的,就是一个弹框.  二.判断弹框     这类框有一个判断作用 关键字:conf ...

  5. Java+Selenium操作日期时间选择框插件

    在自动化测试的时候我们经常会碰到下面的时间日期插件(这个时候这个文本框是不运行我们输入时间的), 我们可以用java获取当前日期,然后用Selenium结合JS代码就可以直接往文本框输入内容. 像这种 ...

  6. js弹框的3种方法

    js的三种弹框的方法 1.第一种 :  alert("1"); 2.第二种 :  window.open("Tests2.html"); var r = con ...

  7. 可以替代alert 的漂亮的Js弹框

    1 基本弹框 2确认框 3又一种确认框 4带返回的弹框 5带返回的探矿 6 6 一切尽在 http://t4t5.github.io/sweetalert/

  8. selenium 操作复选框

    场景 从上一节的例子中可以看出,webdriver可以很方便的使用findElement方法来定位某个特定的对象,不过有时候我们却需要定位一组对象, 这时候就需要使用findElements方法. 定 ...

  9. js弹框怎么获得父页面的元素

    js获取父页面的元素可以用$(window.parent.document).find("#customer_id").val();这里的customer_id表示父页面某一个元素 ...

随机推荐

  1. node 读取超大Excel 文件,提取数据

    之前是用 node-xlsx 来处理excel文件,主要是读取数据或者根据数据生成excel文件.不过,node-xlsx 似乎无法处理超大的excel(100MB以上),例如: var xlsx = ...

  2. VUE的$refs和$el的使用

    ref 被用来给元素或子组件注册引用信息 ref 有三种用法: 1.ref 加在普通的元素上,用this.$refs.(ref值) 获取到的是dom元素 2.ref 加在子组件上,用this.$ref ...

  3. 元类理解与元类编程 《Python3网络爬虫开发》中第九章代理的使用代码Crawler中代码的理解

    __new__与__init__的理解 __new__()方法是在创建实例之前被调用的,它的作用是创建一个实例,然后返回该实例对象,它是一个静态方法. __init__() 当实例被创建完成之后被调用 ...

  4. 图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作

    图解微信小程序---添加tabBar底部菜单,添加已做好轮播图操作 什么是tabBar? 顶部或者底部tab栏如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以 ...

  5. Zookeeper到底是什么

    1. 什么是Zookeeper 用一句话对其进行定义就是:它是一套高吞吐的分布式协调系统.从中我们可以知道Zookeeper至少具有以下特点: 1.Zookeeper的主要作用是为分布式系统提供协调服 ...

  6. sql server 分页总结

    1.第一种方式:使用 ROW_NUMBER() OVER(ORDER BY ID) …… BETWEEN AND 的方式SELECT * FROM( SELECT ROW_NUMBER() OVER( ...

  7. Flask send_file request

    send_file: send_file( filename_or_fp, mimetype=None, as_attachment=False, attachment_filename=None, ...

  8. 微信页面script标签添加crossorigin=“anonymous”导致页面加载失败

    公司一个微信企业号项目,突然出现页面数据加载失败,页面报错信息如下 意思是前端向服务端发送跨域资源请求访问这个js文件,但是服务端并不同意,所以服务端拒绝访问这个地址. 后来发现将crossorigi ...

  9. Java解析复杂JSON数据的一种方法

    1.需解析JSON数据: { "code": 0, "message": "success", "sid": " ...

  10. AHB总线协议(二)

    下图是8拍回环字突发传输:地址将在 32 字节边界处回环因此地址 0x3C 之后的地址是 0x20. 下图是8增量半字突发传输,所以地址每次增加 2 个字节并且突发在递增因此地址连续增加通过了 16 ...