Selenium2學習-040-JavaScript彈出框(alert、confirm、prompt)操作演示實例


 

彈出框是網頁自動化測試常見得操作頁面元素之一,常見的JavaScript彈出框有如下三種:

  • 1alert(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>

 

  • 2confirm(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>

 

  • 3prompt(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 的您一份參考。

最后,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM