Selenium+java - 彈出框處理

Selenium+java - 彈出框處理

1、彈出框分類:
彈出框分爲兩種,一種基於原生JavaScript寫出來的彈窗,另外一種是自定義封裝好的樣式的彈出框,本文重點介紹原生JavaScript寫出來的彈窗,另外一種彈窗用click()基本就能搞定。javascript

原生JavaScript寫出來的彈窗又分爲三種:html

alertjava

Selenium+java - 彈出框處理

confirm微信

Selenium+java - 彈出框處理

prompt
Selenium+java - 彈出框處理ide

2、彈窗處理經常使用方法:測試

  • alert/confirm/prompt彈出框操做主要方法有:
  • driver.switchTo().alert():切換到alert彈出框上
  • getText():獲取文本值
  • accept() :點擊"確認"
  • dismiss() :點擊"取消"或者關閉對話框
  • send_keys() :輸入文本值 --僅限於prompt,在alert和confirm上沒有輸入框
    3、被頁面html源代碼:code

    <!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>

    4、alert彈窗處理
    具體實例代碼以下:htm

     

@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();
}blog

5、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();
}ip

6、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();
}

6、運行結果
![](https://s4.51cto.com/images/blog/202011/29/7aeb5829895d6747839a99c7bd5ebfac.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

__EOF__

本文做者:久曲建的測試窩
本文連接:https://www.cnblogs.com/longronglang/p/11283232.html
關於博主:評論和私信會在第一時間回覆。或者直接私信我。
版權聲明:本博客全部文章除特別聲明外,均採用 BY-NC-SA 許可協議。轉載請註明出處!
聲援博主:若是您以爲文章對您有幫助,能夠點擊文章右下角【推薦】一下。您的鼓勵是博主的最大動力!
優秀不夠,你是否無可替代

軟件測試交流QQ羣:721256703,期待你的加入!!

歡迎關注個人微信公衆號:軟件測試君

![](https://s4.51cto.com/images/blog/202011/29/ce31fca0fc28143bf937ccf6e1316a05.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
相關文章
相關標籤/搜索