前戏

我们常见的弹框有三种,一种是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. sublime-text-3-build-3207 破解+注册码

    按照以下步骤依次进行 打开 https://hexed.it/ 单机 "Open file" 并选择 "sublime_text.exe" 可执行文件. 转到 ...

  2. [转帖]mDNS原理的简单理解

    mDNS原理的简单理解 https://binkery.com/archives/318.html 发现还有avahi-daemon mdns 设置ip地址 等等事项 网络部分 自己学习的还是不够多 ...

  3. spring-retry 重试机制的使用

    场景:由于网络抖动原因,或者其他原因,需要对代码重新执行,这个就需要重试了. import org.springframework.context.annotation.Configuration; ...

  4. python--unittest测试框架

    unittest中最核心的四个概念是:test case, test suite, test runner, test fixture

  5. 安装mysql驱动程序

    1.  MYSQL驱动:https://dev.mysql.com/downloads/connector/odbc/ 64 位版本:https://cdn.mysql.com//Downloads/ ...

  6. Asp.net MVC企业级开发(04)---SignalR消息推送

    Asp.net SignalR是微软为实现实时通信而开发的一个类库.可以适用于以下场景: 聊天室,如在线客服系统,IM系统等 股票价格实时更新 消息的推送服务 游戏中人物位置的实时推送 SignalR ...

  7. 来看一下Java中“-”与equeals的区别

    简介: == ==是比较两个变量的值,如果是基本数据类型,那么就是比较的基本数据的大小值 情况一 int a=1; int b=1; System.out.println(a==b); 以上图中:== ...

  8. web安全常用工具

    简单工具:明小子,阿d注入工具,namp,穿山甲,御剑,旁注 漏洞扫描工具:appscan .awvs.nbsi 端口扫描工具:nessus.namp.天镜脆弱性扫描与管理系统 数据库备份工具:中国菜 ...

  9. webpack报错

    webpack-dev-server --inline --progress --config build/webpack.dev.conf.js internal/modules/cjs/loade ...

  10. 【案例】大型摩托制造企业如何高效排产?看APS系统如何帮忙

    江门市大长江集团有限公司(下文简称,大长江集团)创建于1991年11月,是豪爵控股下属子公司. 大长江生产计划管理从最初的电子表格Excel 公式辅助计算,发展到按公司业务需求,利用Excel VBA ...