📅  最后修改于: 2020-11-06 04:47:38             🧑  作者: Mango
在本节中,您将学习如何在Selenium WebDriver中处理警报。
Selenium WebDriver提供了三种根据警报类型接受和拒绝警报的方法。
此方法用于单击警报的“取消”按钮。
句法:
driver.switchTo().alert().dismiss();
此方法用于单击警报的“确定”按钮。
句法:
driver.switchTo().alert().accept();
此方法用于捕获警报消息。
句法:
driver.switchTo().alert().getText();
此方法用于将一些数据发送到警报框。
句法:
driver.switchTo().alert().sendKeys("Text");
让我们考虑一个测试案例,在该案例中,我们将自动化以下场景:
我们将逐步创建测试用例,以使您全面了解如何在WebDriver中处理警报。
步骤1。启动Eclipse IDE,并打开我们在本教程前面的课程中创建的现有测试套件“ Demo_Test”。
第2步。右键单击“ src”文件夹,然后从“新建”>“类”创建一个新的类文件。
输入您的班级名称为“ alert_test”,然后单击“完成”按钮。
第三步让我们进入编码基础。
这是为Gecko驱动程序设置系统属性的示例代码:
// System Property for Gecko Driver
System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );
这是使用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:
// 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");
}
}
第四步。现在,我们将尝试找到“生成警报框”和“生成确认框”以执行警报处理操作。众所周知,定位元素涉及对其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 = 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浏览器并自动执行所有测试方案。