Selenium WebDriver處理Alert

在本節中,您將學習如何在Selenium WebDriver中處理警報(Alert)。

Selenium WebDriver根據警報類型提供三種接受和拒絕警報的方法。

1. void dismiss()

此方法用於單擊警報的“取消”按鈕。

語法:

driver.switchTo().alert().dismiss();

2. void accept()

此方法用於單擊警報的“確定”按鈕。

語法:

driver.switchTo().alert().accept();

3. void accept()

此方法用於捕獲警報消息。

語法:

driver.switchTo().alert().getText();

4. void sendKeys(String stringToSend)

此方法用於將一些數據發送到警報框。

語法:

driver.switchTo().alert().sendKeys("Text");

下麵來看看一個測試用例,它將自動化以下場景:

注 : 有關檔 - testing.html 的代碼在前面幾篇文章中已經列出,這裏不再贅述。

我們將逐步創建測試用例,以便您完全瞭解如何在WebDriver中處理警報。

第1步 - 啟動Eclipse IDE並打開在本教程前幾節中創建的現有測試套件“Demo_Test”。
第2步 - 右鍵單擊“src” 檔夾,然後從 New -> Class 創建一個新的類檔。

將類的名稱命名為“alert_test” ,然後單擊“完成”按鈕。

第3步 開如編寫代碼。
要調用Firefox流覽器,需要下載Gecko驅動程式並為Gecko驅動程式設置系統屬性。在本教程的前面幾篇文章已經講解過這個問題。可以參考“在Firefox流覽器上運行測試”來瞭解如何下載和設置Firefox驅動程式的系統屬性。
以下是為Gecko驅動程式設置系統屬性的示例代碼:

// System Property for Gecko Driver
System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );

之後使用DesiredCapabilities類初始化Gecko Driver。
以下是使用DesiredCapabilities類初始化gecko驅動程式的示例代碼。

// Initialize Gecko Driver using Desired Capabilities Class
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
WebDriver driver= new FirefoxDriver(capabilities);

結合上述兩個代碼塊,完善啟動Firefox流覽器的代碼片段。

// System Property for Gecko Driver
System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );

 // Initialize Gecko Driver using Desired Capabilities Class
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
WebDriver driver= new FirefoxDriver(capabilities);

之後需要編寫代碼來自動化第二個測試場景(導航到所需的URL),
以下是導航到所需URL的示例代碼:

// Launch Website
driver.navigate().to("http://localhost/testing.html");

到目前為止完整的代碼如下所示:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class alert_test {

    public static void main(String[] args) {

    // System Property for Gecko Driver
                System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );

    // Initialize Gecko Driver using Desired Capabilities Class
     DesiredCapabilities capabilities = DesiredCapabilities.firefox();
     capabilities.setCapability("marionette",true);
     WebDriver driver= new FirefoxDriver(capabilities);

      // Launch Website
      driver.navigate().to("http://localhost/testing.html");

    }

}

第4步 - 現在,找到“Generate Alert Box”“Generate Confirm Box” 以執行警報處理操作。定位元素涉及檢看其HTML代碼。

按照下麵給出的步驟找到示例網頁上的下拉菜單。

它將啟動一個窗口,其中包含“Generate Alert Box” 按鈕所涉及的所有特定代碼。

記下其鏈接文本,即 - “Generate Alert box” -

同樣,查看 “Generate Confirm box” 按鈕。

記下其鏈接文本,即 - “Generate Confirm box” -

第5步 - 要自動化第三和第四個測試場景,需要編寫單擊並接受Generate Alert box 的代碼,然後單擊並接受Generate Confirm box 框。

下麵給出了自動化第三和第四個測試場景的代碼片段。

//Handling alert boxes
    //Click on generate alert button
driver.findElement(By.linkText("Generate Alert Box")).click();

    //Using Alert class to first switch to or focus to the alert box
Alert alert = driver.switchTo().alert();

    //Using accept() method to accep the alert box
    alert.accept();

    //Handling confirm box
    //Click on Generate Confirm Box
driver.findElement(By.linkText("Generate Confirm Box")).click();


    Alert confirmBox = driver.switchTo().alert();

    //Using dismiss() command to dismiss the confirm box
    //Similarly accept can be used to accept the confirm box
    confirmBox.dismiss();

因此,最終測試腳本將如下所示:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.Alert;
public class alert_test {

    public static void main(String[] args) {

        // System Property for Gecko Driver
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );

        // Initialize Gecko Driver using Desired Capabilities Class
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();
            capabilities.setCapability("marionette",true);
            WebDriver driver= new FirefoxDriver(capabilities);

        // Launch Website
        driver.navigate().to("http://localhost/testing.html");

        //Handling alert boxes
        //Click on generate alert button
        driver.findElement(By.linkText("Generate Alert Box")).click();

        //Using Alert class to first switch to or focus to the alert box
        Alert alert = (Alert) driver.switchTo().alert();

        //Using accept() method to accept the alert box
        alert.accept();

        //Handling confirm box
        //Click on Generate Confirm Box
        driver.findElement(By.linkText("Generate Confirm Box")).click();

        Alert confirmBox = (Alert) driver.switchTo().alert();

        //Using dismiss() command to dismiss the confirm box
        //Similarly accept can be used to accept the confirm box
        ((Alert) confirmBox).dismiss();

    }

}

執行後,上述測試腳本將啟動Firefox流覽器並自動執行所有測試方案。


上一篇: Selenium WebDriver拖放處理 下一篇: Selenium WebDriver滾動網頁