Selenium+java - 弹出框处理

时间:2023-02-07 17:52:37

一、弹出框分类:

弹出框分为两种,一种基于原生JavaScript写出来的弹窗,另一种是自定义封装好的样式的弹出框,本文重点介绍原生JavaScript写出来的弹窗,另一种弹窗用click()基本就能搞定。

原生JavaScript写出来的弹窗又分为三种:

alert

Selenium+java - 弹出框处理

confirm

Selenium+java - 弹出框处理

prompt

Selenium+java - 弹出框处理

二、弹窗处理常用方法:

  • alert/confirm/prompt弹出框操作主要方法有:
  • driver.switchTo().alert():切换到alert弹出框上
  • getText():获取文本值
  • accept() :点击"确认"
  • dismiss() :点击"取消"或者关闭对话框
  • send_keys() :输入文本值 --仅限于prompt,在alert和confirm上没有输入框

三、被页面html源代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>弹窗练习案例</title>
<script language="javascript">
function checkup() {
if (window.confirm("确定要删除吗?")) {
return true;
} else {
return false;
}
} function welcome() {
var myname = prompt("请输入你的姓名:");
if (myname != null) {
alert("你好," + myname);
} else {
alert("你好 my friend.");
}
}
</script>
</head>
<body>
<input id="alert" value="alert" type="button" onclick="alert('欢迎关注我的公号:软件测试君!请按确认继续!');"/><br>
<button id="dialog" onclick="checkup()">删除按钮</button><br>
<button id="welcome" onclick="welcome()">点击加入我们</button><br>
</body>
</html>

四、alert弹窗处理

具体实例代码如下:

@Test
public void testAlert() {
driver.get("file:///C:/Users/Administrator/Desktop/popup.html");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElement(By.id("alert")).click();
//获取alert对话框
Alert alert = driver.switchTo().alert();
//获取对话框文本
String text = alert.getText();
//打印警告对话框内容
System.out.println(text);
//alert对话框属于警告对话框,我们这里只能接受弹窗
alert.accept();
}

五、confirm弹窗处理

具体实例代码如下:

@Test
public void testConfirm() {
driver.get("file:///C:/Users/Administrator/Desktop/popup.html");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElement(By.id("dialog")).click();
//获取confirm对话框
Alert alert = driver.switchTo().alert();
//获取对话框的内容
String text = alert.getText();
//打印对话框的内容
System.out.println(text);
//点击“确认”按钮
alert.accept();
////# 点击“取消”按钮
//alert.dismiss();
}

六、prompt弹窗处理

具体实例代码如下:

@Test
public void testPrompt() {
driver.get("file:///C:/Users/Administrator/Desktop/popup.html");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElement(By.id("welcome")).click();
//获取prompt对话框
Alert alert = driver.switchTo().alert();
//获取对话框的内容
String text = alert.getText();
//打印对话框的内容
System.out.println(text);
//在弹框内输入信息
alert.sendKeys("软件测试君");
//点击“确认”按钮,提交输入的内容
alert.accept();
}

六、运行结果

Selenium+java - 弹出框处理

Selenium+java - 弹出框处理的更多相关文章

  1. Java 学习笔记 &lpar;二&rpar; Selenium WebDriver Java 弹出框

    下面这段实例实现了以下功能: 1. profile使用用户本地电脑上的 (selenium 3有问题.因为selenium 3把profile复制到一个temp文件夹里,但并不复制回去.所以每次打开仍 ...

  2. 自动化测试-12&period;selenium的弹出框处理

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

  3. selenium浏览器弹出框alert 操作

    1.简介 在WebDriver中要处理JS生成的alert.confirm以及prompt,需要 switch_to.alert() 来选取(定位)警告弹窗,在对弹窗进行关闭.输入等信息操作. 2.操 ...

  4. Selenium Webdriver弹出框的种种类型

    普通弹出框 div 一般这种 弹出框都属于dom的一部分,我们查看一下页面源码就可以定位到改弹出框了,然后定位下右上角的那个关闭, 这里有id,所以很方便通过 dr.findElement(By.id ...

  5. Selenium Webdriver弹出框 微博分享的内容控制与结果生成

    browser.window_handles for i in ugc_url_l: js = 'window.location.href="{}"'.format(i) brow ...

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

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

  7. 自动化测试基础篇--Selenium弹出框alert

    摘自https://www.cnblogs.com/sanzangTst/p/7685304.html   不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认 ...

  8. java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

    java 弹出选择目录框(选择文件夹),获取选择的文件夹路径 java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0;File file = null;String ...

  9. Python&plus;Selenium笔记(九):操作警告和弹出框

    #之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一 ...

随机推荐

  1. ArcGIS Engine开发之图形查询

    图形查询是以用户通过鼠标操作生成的图形几何体为输入条件进行查询的查询,其查询结果为该几何体空间范围内的所有要素.常用的查询方式包括点选.线选.多边形选择.圆形选择和矩形选择等. 相关类与接口 图像查询 ...

  2. c&num; 判断访问来源是否来自手机

    public Boolean IsMobileDevice() { string[] mobileAgents =new []{ "iphone", "android&q ...

  3. 深入了解DSP与ARM的区别与联系

    http://www.eeboard.com/bbs/thread-25219-1-1.html ARM微处理器的体系结构 了解DSP的体系结构 深入了解DSP与ARM的区别与联系 2011-09-3 ...

  4. 【原】jQuery与CSS自动生成验证码

    模板: <button class="r receive_code">获取验证码</button> <span class="r code& ...

  5. CCFlow SDK模式开发

    需求: 1.业务数据要保存在我们自己的数据库里    2.CCFlow有保存草稿的功能,但是领导要求每个业务都要有草稿箱,流程从草稿箱发起,每个业务单独查询,而不要在CCFlow的统一界面查询,所以每 ...

  6. &lbrack;css&rsqb; line boxes

    原文链接:http://www.zhangxinxu.com/wordpress/2010/01/css-float%E6%B5%AE%E5%8A%A8%E7%9A%84%E6%B7%B1%E5%85 ...

  7. Stat

    Description 请你编程实现一个简单(渣渣)的文本编辑器,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定 ...

  8. User Parameters&lpar;用户参数&rpar;

      User Parameters(用户参数),这个是整个zabbix的重点 Zabbix有很多内置的itemkey,但是这些key都是由Zabbix定义好的比较通用的监控项的实现, 如果我们自己想实 ...

  9. Process Order API - How To Scripts

    In this Document   Purpose   Questions and Answers   References APPLIES TO: Oracle Order Management ...

  10. 前端面试整理——javascript算法和测试题

    (1)算法: 1.斐波那契数列:1.1.2.3.5.8.13.21.输入n,输出数列中第n位数的值. 方案一: function fn(n){ var num1 = 1, num2= 1, num3 ...