Selenium2学习-040-JavaScript弹出框(alert、confirm、prompt)操作演示实例

弹出框是网页自动化测试常见得操作页面元素之一,常见的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 源码如下所示:

 1 /**
 2  * Aaron.ffp Inc.
 3  * Copyright (c) 2004-2016 All Rights Reserved.
 4  */
 5 package ffp.demo.webdriver;
 6
 7 import org.openqa.selenium.Alert;
 8 import org.openqa.selenium.By;
 9 import org.openqa.selenium.WebDriver;
10 import org.openqa.selenium.chrome.ChromeDriver;
11 import org.testng.annotations.Test;
12
13
14 /**
15  * <strong>元素操作实例-弹出框(警示框、提示框)<br></strong>
16  * alert(message) 方法用于显示带有一条指定消息和一个 OK 按钮的警告框。<br>
17  * @author Aaron.ffp
18  * @version V1.0.0: ffp-demo ffp.demo.webdriver DemoAlert.java, 2016-09-16 10:41:02.118 Exp $
19  */
20 public class DemoAlert {
21     String url = "http://localhost:8080/ffp-demo/res/main/webdriver/DemoAlert.html";
22
23     private WebDriver driver = new ChromeDriver();
24
25     @Test
26     public void test_alert() {
27         this.driver.manage().window().maximize();
28         this.driver.get(this.url);
29
30         this.driver.findElement(By.xpath("//input[@class=‘alert‘]")).click();
31         Alert alert = this.driver.switchTo().alert();
32
33         System.out.println(alert.getText());
34
35         alert.accept();
36
37         this.driver.quit();
38
39     }
40 }

DemoConfirm.java 源码如下所示:

 1 /**
 2  * Aaron.ffp Inc.
 3  * Copyright (c) 2004-2016 All Rights Reserved.
 4  */
 5 package ffp.demo.webdriver;
 6
 7 import org.openqa.selenium.Alert;
 8 import org.openqa.selenium.By;
 9 import org.openqa.selenium.WebDriver;
10 import org.openqa.selenium.chrome.ChromeDriver;
11 import org.openqa.selenium.os.WindowsUtils;
12 import org.testng.annotations.Test;
13
14 import com.google.gson.annotations.Until;
15
16 import ffp.demo.core.TestCaseBase;
17
18 /**
19  * <strong>元素操作实例-确认框(确认、取消)</strong><br>
20  * <br>
21  * @author Aaron.ffp
22  * @version V1.0.0: ffp-demo ffp.demo.webdriver DemoConfirm.java, 2016-09-16 10:41:45.227 Exp $
23  */
24 public class DemoConfirm extends TestCaseBase {
25     String url = "http://localhost:8080/ffp-demo/res/main/webdriver/DemoConfirm.html";
26
27     private WebDriver driver = new ChromeDriver();
28
29     @Test
30     public void test_alert() {
31         this.driver.manage().window().maximize();
32         this.driver.get(this.url);
33
34         this.driver.findElement(By.xpath("//input[@class=‘alert‘]")).click();
35         Alert alert = this.driver.switchTo().alert();
36
37         System.out.println(alert.getText());
38
39         alert.accept();
40 //        alert.dismiss();
41
42         System.out.println(this.driver.getPageSource().toString());
43
44         this.driver.quit();
45
46     }
47 }

DemoPrompt.java 源码如下所示:

 1 /**
 2  * Aaron.ffp Inc.
 3  * Copyright (c) 2004-2016 All Rights Reserved.
 4  */
 5 package ffp.demo.webdriver;
 6
 7 import org.openqa.selenium.Alert;
 8 import org.openqa.selenium.By;
 9 import org.openqa.selenium.WebDriver;
10 import org.openqa.selenium.chrome.ChromeDriver;
11 import org.openqa.selenium.os.WindowsUtils;
12 import org.testng.annotations.Test;
13
14
15 /**
16  * <strong>元素操作实例-输入提示框</strong><br>
17  * <br>
18  * @author Aaron.ffp
19  * @version V1.0.0: ffp-demo ffp.demo.webdriver DemoPrompt.java, 2016-09-16 10:44:16.638 Exp $
20  */
21 public class DemoPrompt {
22     String url = "http://localhost:8080/ffp-demo/res/main/webdriver/DemoPrompt.html";
23
24     private WebDriver driver = new ChromeDriver();
25
26     @Test
27     public void test_prompt() throws InterruptedException {
28         this.driver.manage().window().maximize();
29         this.driver.get(this.url);
30
31         this.driver.findElement(By.xpath("//input[@class=‘alert‘]")).click();
32         Alert prompt = this.driver.switchTo().alert();
33
34         System.out.println(prompt.getText());
35         prompt.sendKeys("Selenium3启动Firefox需要geckodriver.exe");
36
37         Thread.sleep(5000);
38
39         prompt.accept();
40
41 //        alert.dismiss();
42
43         Thread.sleep(5000);
44
45         System.out.println(this.driver.getPageSource().toString());
46
47         WindowsUtils.killByName("chromedriver_x86_2.24.exe");
48     }
49 }

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

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

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

时间: 2024-10-10 18:23:21

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

[Selenium]对弹出的Alert窗口进行操作

? 1 2 Alert alert = driver.switchTo().alert(); alert.accept(); [Selenium]对弹出的Alert窗口进行操作

JavaScript弹出框

confirm(str); 参数说明: str:在消息对话框中要显示的文本 返回值: Boolean值 返回值: 当用户点击"确定"按钮时,返回true 当用户点击"取消"按钮时,返回false 注: 通过返回值可以判断用户点击了什么按钮 看下面的代码: <script type="text/javascript"> var mymessage=confirm("你喜欢JavaScript吗?"); if(myme

ExtJs--02--MessageBox相关弹出窗口alert,prompt,confirm采用

/* Ext.onReady(function(){ Ext.MessageBox.alert("jack","tom"); Ext.MessageBox.alert("标题","提示信息",function(btn){ Ext.MessageBox.alert("小标题","您点击的是 " + btn ); },this); });*/ /* Ext.onReady(function(

自定义弹出框效果

对网站而言,弹出框是比较常见的.或是给出用户操作提示,或是通过弹出框打开一个小窗口以提示信息,或是给出错误警示等等. 但是由于浏览器自带的弹出窗口alert , confirm , prompt样式比较单调,且不同浏览器有不同的默认样式设置. 所以在日常工作中,给网站做一个自定义的弹出框十分必要.特别是富交互的网站 一.提示框 html部分: 1 <!--修改弹窗--> 2 <div class="pop-alert" id="pop" style

转:WebDriver(Selenium2) 处理可能存在的JS弹出框

在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框.(即某些条件下才会出现,不是固定出现),然后如果当这种弹出框出现,我们没有加以处理,WebDriver将无法进行下一步的操作,并且会抛出NoAlertPresentException的异常(从2.16版本开始).所以,使用以下方法可以处理潜在的1个alert(javascript弹出框). Java代码   public boolean dealPotentialAlert(WebDriver driver,boole

WebDriver(Selenium2) 处理可能存在的JS弹出框

http://uniquepig.iteye.com/blog/1703103 在自动化测试过程中,有些情况下我们会遇到一些潜在的Javascript弹出框.(即某些条件下才会出现,不是固定出现),然后如果当这种弹出框出现,我们没有加以处理,WebDriver将无法进行下一步的操作,并且会抛出NoAlertPresentException的异常(从2.16版本开始).所以,使用以下方法可以处理潜在的1个alert(javascript弹出框). public boolean dealPotent

原生Js封装的弹出框

<!DOCTYPE HTML> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>原生Js封装的弹出框-弹出窗口-页面居中-多状态可选</title> <style type="text/css"&

[Bootstrap]modal弹出框

写在前面 在实际开发中,为了友好,更需要一种美观的弹出框,js原生的alert,很难满足需求.这里推荐一个bootstrap的弹出框. 一个例子 先看效果吧 代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模式弹出框</title> <meta name="viewport" content=&

python-selenium -- 弹出框处理

弹出框有两种:页面弹出框(可定位元素能操作).Windows弹出框(不能直接定位) 一.页面弹出框 等待弹出框出现之后,定位弹出框,操作其中元素 如: driver = webdriver.Chrome() driver.get("https://www.baidu.com") driver.maximize_window() #点击百度登录按钮 driver.find_element_by_xpath('//*[@id="u1"]//a[@name="t