Selenium教程

Selenium WebDriver处理警报

在本节中,您将学习如何在Selenium WebDriver中处理警报。
Selenium WebDriver提供了三种接受和接收警报的方法。根据警报类型拒绝警报。

1、 void dismiss()

此方法用于单击警报的"取消"按钮。
语法:
driver.switchTo().alert().dismiss();

2、 void accept()

此方法用于单击警报的"确定"按钮。
语法:
driver.switchTo().alert().accept();

3、字符串getText()

此方法用于捕获警报消息。
语法:
driver.switchTo().alert().getText();  

4、 void sendKeys(String stringToSend)

此方法用于将一些数据发送到警报框。
语法:
driver.switchTo().alert().sendKeys("Text");
让我们考虑一个测试案例,在该案例中,我们将自动执行以下方案:
调用Firefox浏览器 打开URL: https://www.testandquiz.com/selenium/testing.html 单击"生成警报框"按钮 点击"生成确认框"按钮 关闭浏览器
我们将逐步创建测试用例,以使您全面了解如何在WebDriver中处理警报。
Step1、启动Eclipse IDE,并打开我们在本教程前面的课程中创建的现有测试套件" Demo_Test"。
Step2、右键单击" src"文件夹,然后从 New> Class 创建一个新的类文件。
Selenium WebDriver-处理警报
使用" alert_test"作为您的班级名称,然后单击"完成"按钮。
Selenium WebDriver-处理警报
Step3、让我们进入编码基础。
要调用Firefox浏览器,我们需要下载Gecko驱动程序并设置Gecko驱动程序的系统属性。我们已经在本教程的早期课程中对此进行了讨论。您可以参考"在Firefox浏览器上运行测试" 了解如何下载和设置Firefox驱动程序的系统属性。
这是为Gecko驱动程序设置系统属性的示例代码:
     // System Property for Gecko Driver 
    System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
之后,我们必须使用所需功能类来初始化Gecko驱动程序。
这是使用DesiredCapabilities类初始化壁虎驱动程序的示例代码。
  // 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("https://www.testandquiz.com/selenium/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("https://www.testandquiz.com/selenium/testing.html"); 
    
    }
}
Step4、现在,我们将尝试找到"生成警报框"和"生成确认框"以执行警报处理操作。众所周知,定位元素涉及对其HTML代码的检查。
请按照以下步骤在示例网页上找到下拉菜单。
打开URL: https://www.testandquiz.com/selenium/testing.html 右键单击"生成警报框"按钮,然后选择"检查元素"。 Selenium WebDriver-处理警报 它将启动一个窗口,其中包含开发"生成警报框"按钮所涉及的所有特定代码。 Selenium WebDriver-处理警报 记下其链接文本,即" Generate Alert Box"(生成警报框) Selenium WebDriver-处理警报
类似地,我们将检查"生成确认框"按钮。
Selenium WebDriver-处理警报 记下其链接文本,即"生成确认框" Selenium WebDriver-处理警报
Step5、
要使第三和第四测试场景自动化,我们需要编写代码,单击并接受 Generate Alert框,然后单击并接受Generate Confirm框。
下面给出的是用于自动化第三和第四测试场景的代码段。
//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("https://www.testandquiz.com/selenium/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浏览器并自动执行所有测试方案。

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4