一、Alert/Confirm/Prompt弹出窗口特征说明

Alert弹出窗口:

提示用户信息只有确认按钮,无法通过页面元素定位,不关闭窗口无法在页面上做其他操作。

Confirm 弹出窗口:

有确认和取消按钮,该弹出窗口无法用页面元素定位,不关闭窗口无法在页面上做其他操作。

Prompt弹出窗口:

有输入框、确认和取消按钮,该弹出窗口无法用页面元素定位,不关闭窗口无法在页面上做其他操作。

注意:3种窗口为浏览器自带的窗口,该窗口无法定位到元素,能定位到元素需要使用WebElement操作。

二、Alert/Confirm/Prompt弹出窗口操作

第一步:需要获取弹出窗口,两种方法 与Alert(driver)

alert=driver.switch_to.alert

from selenium.webdriver.common.alert import Alert
alert=Alert(driver)

第二步:对获取到的窗口进行操作,常用方法如下:

alert.text()  # 获取窗口信息
alert.accept() # 确认
alert.dismiss() # 取消
alert.send_keys(keysToSend) # 输入信息

alert.authenticate(username, password) # 用户认证信息登录,已有确认操作

三、实例说明

创建下面3个html文件

alertTest.html

<html>
<head>
<title>Alert Test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
</head>
<script type="text/javascript">
function showAlert(){
alert(document.from1.t1.value);
}
function showMultilineAlert(){
alert("你必须纠正以下错误:\n你必须输入XXXX.\n你必须做XXXX.\n你必须XXXX");
}
</script>
<body>
<h2>Alert Test</h2>
<form name="from1">
<input type="text" name="t1" value="可以输入 Alert 信息"><br><br>
<input type="button" name="button1" value="点击Alert获取输入框信息" onclick="showAlert()"><br><br>
<input type="button" name="button2" value="Alert自带多行文本信息" onclick="showMultilineAlert()"><br>
</form>
</body>
</html>

confirmTest.html

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Confirm Test</title>
</head>
<script type="text/javascript">
function showConfirm(){
var t1 = document.from1.t1;
if (confirm("请点击确认或取消")){
t1.value = "确认";
}else{
t1.value = "取消";
}
}
</script>
<body>
<h2>Confirm Test</h2>
<form name="from1">
<input type="button" name="button1" value="点击Confirm按钮" onclick="showConfirm()"><br><br>
<input type="text" name="t1">
</form>
</body>
</html>

promptTest.html

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Prompt Test</title>
</head>
<script type="text/javascript">
function showPrompt(){
var t1 = document.from1.t1;
t1.value = prompt("请输入信息,信息将填入页面输入框.");
}
</script>
<body>
<h2>Prompt Test</h2>
<form name="from1">
<input type="button" name="button1" value="点击Prompt按钮" onclick="showPrompt()"><br><br>
<input type="text" name="t1">
</form>
</body>
</html>

示例1:Alert弹窗获取文本与确认操作

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.expected_conditions import alert_is_present
from selenium.webdriver.common.alert import Alert driver = webdriver.Chrome()
driver.get(r'E:\XXX\alertTest.html')
driver.find_element_by_name('button1').click() # 点击第一个按钮
WebDriverWait(driver, 5).until(alert_is_present()) # 等待弹出窗口出现
alert = driver.switch_to.alert # 获取弹出窗口
text1 = alert.text # 获取窗口文本信息
print(text1) # 打印窗口文本信息
alert.accept() # 确认
print('----------')
driver.find_element_by_name('button2').click() # 点击第二个按钮
WebDriverWait(driver, 5).until(alert_is_present()) # 等待弹出窗口出现
alert = Alert(driver) # 获取弹出窗口
text1 = alert.text # 获取窗口文本信息
print(text1) # 打印窗口文本信息
alert.accept() # 确认
driver.quit()

注意:WebDriverWait(driver, 5).until(alert_is_present()) 加上这个可提高代码的可靠性

示例2:Comfirm弹窗获取文本、确认、取消操作

driver = webdriver.Chrome()
driver.get(r'E:\XXX\confirmTest.html')
driver.find_element_by_name('button1').click() # 点击按钮
WebDriverWait(driver, 5).until(alert_is_present()) # 等待弹出窗口出现
alert = driver.switch_to.alert # 获取弹出窗口
print(alert.text) # 打印窗口信息
alert.accept() # 确认
time.sleep(2) driver.find_element_by_name('button1').click() # 点击按钮
WebDriverWait(driver, 5).until(alert_is_present()) # 等待弹出窗口出现
alert = driver.switch_to.alert # 获取弹出窗口
alert.dismiss() # 取消
time.sleep(2)
driver.quit()

示例3:Prompt 弹窗获取文本、输入内容、确认操作

driver = webdriver.Chrome()
driver.get(r'E:\XXX\promptTest.html')
driver.find_element_by_name('button1').click() # 点击按钮
WebDriverWait(driver, 5).until(alert_is_present()) # 等待弹出窗口出现
alert = Alert(driver) # Alert 获取弹出窗口
alert.send_keys('selenium Alert弹出窗口输入信息') # 输入信息
alert.accept() # 确认
time.sleep(2)
driver.quit()

selenium自动化测试入门 Alert/Confirm/Prompt 弹出窗口处理的更多相关文章

  1. 基于js alert confirm样式弹出框

    基于js alert confirm样式弹出框.这是一款根据alert confirm优化样式的确认对话框代码. 在线预览   源码下载 实现的代码. html代码: <div id=" ...

  2. javascript alert,confirm,prompt弹框用法

    1. alert是弹出警告框,在文本里面加入\n就可以换行. 2. confirm弹出确认框,会返回布尔值,通过这个值可以判断点击时确认还是取消.true表示点击了确认,false表示点击了取消. 3 ...

  3. 2.11 alert\confirm\prompt

    2.11 alert\confirm\prompt 前言   不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用 ...

  4. Selenium2学习(十二)-- alert\confirm\prompt

    前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...

  5. selenium python (十一)alert/confirm/prompt的处理(js中的弹出框)

    webdriver中处理js所生成的alert.confirm以及prompt,采用switch_to_alert()方法定位到alert/confirm/prompt.然后使用text/accept ...

  6. 基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框

    alert.confirm.prompt这样的js对话框在selenium1 时代处理起来比价麻烦,常常要用autoit来帮助处理.而现在webdriver对这些弹出框做了专门的处理,使用seleni ...

  7. Java Selenium - 几种对话框处理Alert\confirm\prompt

    1. Alert , 先用常规办法定位到能触发alert的按钮 , 然后 Alert alert = driver.switchTo().alert(); alert.accept(); 如果aler ...

  8. Python+Selenium学习--alert/confirm/prompt 处理

    场景 webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confi ...

  9. alert/confirm/prompt 处理

    webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to_alert()方法定位到alert/confirm/ ...

随机推荐

  1. poj1741 树上距离小于等于k的对数 点分治 入门题

    #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...

  2. oracle函数 ln(y)

    [功能]返回以e为底的y的对数(e为数学常量) [参数]y,数字型表达式 (条件y>0) [返回]数字 [示例] select exp(3),exp(-3),ln(20.0855369),ln( ...

  3. 洛谷P1449 后缀表达式 题解 栈

    题目链接:https://www.luogu.org/problem/P1449 这道题目我们只需要开一个栈,每次读取到一个数的话就将这个数 push 进栈. 因为提供给我们的时候已经是一个后续序列了 ...

  4. 微信小程序下拉刷新 并重新加载数据

    1.在json页面配置: { "enablePullDownRefresh": true } 2.调用刷新函数 onPullDownRefresh: function() { wx ...

  5. Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory

    遇到问题 在服务器上运行 nexus 出现Native memory allocation (mmap) failed to map 838860800 bytes for committing re ...

  6. 2019-9-2-本文说如何显示SVG

    title author date CreateTime categories 本文说如何显示SVG lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17:23 ...

  7. [转]Jquery属性选择器(同时匹配多个条件,与或非)(附样例)

    1. 前言 为了处理除了两项不符合条件外的选择,需要用到jquery选择器的多个条件匹配来处理,然后整理了一下相关的与或非的条件及其组合. 作为笔记记录. 2. 代码 1 2 3 4 5 6 7 8 ...

  8. P1054 全组合

    题目描述 给定n,m,按字典序输出所有从1-n里面取出m个数的组合.比如从1-3里面取出2个的组合是: 1 2 1 3 2 3 输入格式 输入两个数n,m.其中 \(0<n<=10,0&l ...

  9. JS 逻辑运算符 ||、 &&, 位运算符 |、&

    1.JS中的||符号: 运算方法: 只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值. 只要“||”前面为true,不管“||”后面是true还是fals ...

  10. 移动端开发touchstart,touchmove,touchend事件详解和项目

    移动端开发touchstart,touchmove,touchend事件详解和项目 最近在做移动端的开发,在一个“服务商管理”页面使用到了触摸事件"touchstart",&quo ...