弹出框是网页自动化测试常见得操作页面元素之一,常见的JavaScript弹出框有如下三种:

  • 1、alert(message):方法用于显示带有一条指定消息和一个 OK 按钮的警告框。DemoAlert.html 示例代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../css/theme.css" charset="utf-8"/> <title>元素操作实例-弹出框(警示、提示)</title> <script type="text/javascript">
function op_alert() {
alert("这是一个:弹出框(警示、提示)")
}
</script>
</head> <body>
<div>
<input class="alert" type="button" style="width:200px,height:20px" onclick="op_alert()" value="显示警告框" />
</div>
</body>
</html>
  • 2、confirm(message):方法用于显示一个带有指定消息和 OK 及取消按钮的对话框。DemoConfirm.html示例代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../css/theme.css" charset="utf-8"/> <title>元素操作实例-确认框(确认、取消)</title> <script type="text/javascript">
function op_confirm() {
var op = confirm("这是一个确认消息框示例,是否执行删除操作?") if(op == true) {
document.write("您按下了确认操作键!")
} else {
document.write("你按下了取消操作键!")
}
}
</script>
</head> <body>
<div>
<input class="alert" type="button" onclick="op_confirm()" value="显示确认框" />
</div>
</body>
</html>
  • 3、prompt(text,defaultText):方法用于显示可提示用户进行输入的对话框。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../css/theme.css" charset="utf-8"/> <title>元素操作实例-输入提示框</title> <script type="text/javascript">
function op_prompt() {
var name = prompt("Please enter your name :", "http://www.cnblogs.com/fengpingfan/") if((name == "范丰平" || name == "http://www.cnblogs.com/fengpingfan/") && name != "") {
document.getElementById('content').innerHTML = "Welcome to my cnblogs : <a href=\"http://www.cnblogs.com/fengpingfan/\">范丰平-博客园</a>"
} else if (name == "") {
document.getElementById('content').innerHTML = "Input nothing !"
} else if (name == null) {
document.getElementById('content').innerHTML = "Clicked cancel button !"
} else {
document.getElementById('content').innerHTML = "<a>Input content is : " + name + "</a>"
}
}
</script>
</head> <body>
<div id="content">
</div>
<div>
<input class="alert" type="button" onclick="op_prompt()" value="显示输入提示框" />
</div>
</body>
</html>

三者需要的 theme.css 文件如下所示:

.alert {
width: 300px;
height: 40px;
}

以上三种对话框均可通过 WebDriver 中的 Alert 去操作,操作源代码如下所示:

DemoAlert.java 源码如下所示:

 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2016 All Rights Reserved.
*/
package ffp.demo.webdriver; import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test; /**
* <strong>元素操作实例-弹出框(警示框、提示框)<br></strong>
* alert(message) 方法用于显示带有一条指定消息和一个 OK 按钮的警告框。<br>
* @author Aaron.ffp
* @version V1.0.0: ffp-demo ffp.demo.webdriver DemoAlert.java, 2016-09-16 10:41:02.118 Exp $
*/
public class DemoAlert {
String url = "http://localhost:8080/ffp-demo/res/main/webdriver/DemoAlert.html"; private WebDriver driver = new ChromeDriver(); @Test
public void test_alert() {
this.driver.manage().window().maximize();
this.driver.get(this.url); this.driver.findElement(By.xpath("//input[@class='alert']")).click();
Alert alert = this.driver.switchTo().alert(); System.out.println(alert.getText()); alert.accept(); this.driver.quit(); }
}

DemoConfirm.java 源码如下所示:

 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2016 All Rights Reserved.
*/
package ffp.demo.webdriver; import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.os.WindowsUtils;
import org.testng.annotations.Test; import com.google.gson.annotations.Until; import ffp.demo.core.TestCaseBase; /**
* <strong>元素操作实例-确认框(确认、取消)</strong><br>
* <br>
* @author Aaron.ffp
* @version V1.0.0: ffp-demo ffp.demo.webdriver DemoConfirm.java, 2016-09-16 10:41:45.227 Exp $
*/
public class DemoConfirm extends TestCaseBase {
String url = "http://localhost:8080/ffp-demo/res/main/webdriver/DemoConfirm.html"; private WebDriver driver = new ChromeDriver(); @Test
public void test_alert() {
this.driver.manage().window().maximize();
this.driver.get(this.url); this.driver.findElement(By.xpath("//input[@class='alert']")).click();
Alert alert = this.driver.switchTo().alert(); System.out.println(alert.getText()); alert.accept();
// alert.dismiss(); System.out.println(this.driver.getPageSource().toString()); this.driver.quit(); }
}

DemoPrompt.java 源码如下所示:

 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2016 All Rights Reserved.
*/
package ffp.demo.webdriver; import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.os.WindowsUtils;
import org.testng.annotations.Test; /**
* <strong>元素操作实例-输入提示框</strong><br>
* <br>
* @author Aaron.ffp
* @version V1.0.0: ffp-demo ffp.demo.webdriver DemoPrompt.java, 2016-09-16 10:44:16.638 Exp $
*/
public class DemoPrompt {
String url = "http://localhost:8080/ffp-demo/res/main/webdriver/DemoPrompt.html"; private WebDriver driver = new ChromeDriver(); @Test
public void test_prompt() throws InterruptedException {
this.driver.manage().window().maximize();
this.driver.get(this.url); this.driver.findElement(By.xpath("//input[@class='alert']")).click();
Alert prompt = this.driver.switchTo().alert(); System.out.println(prompt.getText());
prompt.sendKeys("Selenium3启动Firefox需要geckodriver.exe"); Thread.sleep(5000); prompt.accept(); // alert.dismiss(); Thread.sleep(5000); System.out.println(this.driver.getPageSource().toString()); WindowsUtils.killByName("chromedriver_x86_2.24.exe");
}
}

相应的脚本源码文件分享链接:https://yunpan.cn/ckua8gdW5fKYQ  访问密码 e5b2

至此,Selenium2学习-040-JavaScript弹出框(alert、confirm、prompt)操作演示实例 顺利完结,希望此文能够给初学 Selenium 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

Selenium2学习-040-JavaScript弹出框(alert、confirm、prompt)操作演示实例的更多相关文章

  1. 练习:javascript弹出框及地址选择功能,可拖拽

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

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

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

  3. JavaScript 弹出框

    JavaScript 有三种类型的弹出框:警告框.确认框和提示框. 警告框 如果要确保信息传递给用户,通常会使用警告框. 当警告框弹出时,用户将需要单击“确定”来继续. 语法 window.alert ...

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

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

  5. 弹出框Alert

    selenium提供了三个处理alert的方法 注意:首先需要切换窗口到alert driver.switch_to.alert() (1)点击确定按钮 driver.switch_to.alert. ...

  6. javascript弹出框打印某个数值时,弹出NaN?(not a number)

    一.NaN:表示not a number null 未定义或空字符串 undefined 对象属性不存在 或是声明了变量但从未赋值. 二.出现这种情况有(1)此常数的值是零被零除所得到的结果. (2) ...

  7. bootstrap里面的popover组件如何使鼠标移入可以对弹出框进行一系列的操作

    在bootstrap里面,有一个组件很可爱,它就是popover,它是对标签title属性的优化,奉上连接一枚:http://docs.demo.mschool.cn/components/popov ...

  8. JavaScript弹出框

    confirm(str); 参数说明: str:在消息对话框中要显示的文本 返回值: Boolean值 返回值: 当用户点击"确定"按钮时,返回true 当用户点击"取消 ...

  9. (十)弹出框Alert与ActionSheet

    第一种方式:中间弹窗 从中间弹出的窗口称为AlertView. 可以设置多个按钮,取消按钮会放在对右端或者最下端,按钮超过两个,会竖着排列. UIAlertView *alert = [[[UIAle ...

  10. JavaScript 弹出框:警告(alert)、确认(confirm)的简单写法

    onclick="javascript:return window.confirm('message')"

随机推荐

  1. libqrencode生成二维码

    在生成二维码的库中QREncoder最为常见,但是由于中文字符的特殊性,生成中文的时候会出现一定的错误,所以博主改用libqrencode,是一个纯C编写的类库,支持面也更广泛. ① 下载libqre ...

  2. JAVA字符串格式化-String.format()的使用(转)

    常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重 ...

  3. 几年前做家教写的C教程(之四专讲了指针与汉诺塔问题)

    C语言学习宝典(4) 指针:可以有效的表示复杂的数据结构,能动态的分配动态空间,方便的使用字符串,有效的使用数组,能直接处理内存单元 不掌握指针就没有掌握C语言的精华 地址:系统为每一个变量分配一个内 ...

  4. 利用Queue队列实现FIFO的算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...

  5. java中定时器的四种方法

    package com.lid; import java.util.Calendar; import java.util.Date; import java.util.Timer; import ja ...

  6. JavaScript老梗之this对象

    Js中的this关键词貌似是初学者必经的坑 都不例外 我们经常听到其他人说 this对象谁调用指向谁 的确这是最容易理解的 但是我们可以更加深入的去探索下 加深印象以便更加灵活的适用它 这里不得不提下 ...

  7. MIT 6.828 JOS学习笔记4. Lab 1 Part 2.1: The Boot Loader

    Part 2: The Boot Loader 对于PC来说,软盘,硬盘都可以被划分为一个个大小为512字节的区域,叫做扇区.一个扇区是一次磁盘操作的最小粒度.每一次读取或者写入操作都必须是一个或多个 ...

  8. linux yum安装jdk

    >>>>>>>>>> 实例: yum安装jdk 1.查看当前的jdk版本,并卸载 (注1:rpm -qa ###解释:查询所有安装的rpm包 ...

  9. Android之UI编程(二):表格布局

    表格布局(TableLayout)继承了LinearLayout,它的本质依然是线性布局管理器,表TableLayout采用行.列的形式来管理UI组件,它并不需要明确地声明暴行多少行.多少列,而是通过 ...

  10. ZeroMQ接口函数之 :zmq_msg_init_data - 从一个指定的存储空间中初始化一个ZMQ消息对象的数据

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init_data zmq_msg_init_data(3) ØMQ Manual - ØMQ/3.2.5 ...