在本节中, 你将学习如何在Selenium WebDriver中处理警报。
Selenium WebDriver提供了三种根据警报类型接受和拒绝警报的方法。
1.无效dismiss()
此方法用于单击警报的”
取消”
按钮。
句法:
driver.switchTo().alert().dismiss();
2.无效accept()
此方法用于单击警报的” 确定” 按钮。
句法:
driver.switchTo().alert().accept();
3.字符串getText()
此方法用于捕获警报消息。
句法:
driver.switchTo().alert().getText();
4. void sendKeys(String stringToSend)
此方法用于将一些数据发送到警报框。
句法:
driver.switchTo().alert().sendKeys("Text");
让我们考虑一个测试案例, 在该案例中, 我们将自动执行以下方案:
- 调用Firefox浏览器
- 公开网址:https://www.testandquiz.com/selenium/testing.html
- 点击” 生成警报框” 按钮
- 点击” 生成确认框” 按钮
- 关闭浏览器
步骤1。启动Eclipse IDE, 并打开我们在本教程前面的课程中创建的现有测试套件” Demo_Test” 。
【Selenium WebDriver-处理警报实例图解】第2步。右键单击” src” 文件夹, 然后从” 新建” > ” 类” 创建一个新的类文件。
文章图片
输入你的班级名称为” alert_test” , 然后单击” 完成” 按钮。
文章图片
第三步让我们进入编码基础。
- 要调用Firefox浏览器, 我们需要下载Gecko驱动程序并为Gecko驱动程序设置系统属性。我们已经在本教程的早期课程中对此进行了讨论。你可以参考” 在Firefox浏览器上运行测试” 以了解如何下载和设置Firefox驱动程序的系统属性。
// System Property for Gecko Driver System.setProperty("webdriver.gecko.driver", "D:\\GeckoDriver\\geckodriver.exe" );
- 之后, 我们必须使用所需功能类初始化Gecko驱动程序。
// Initialize Gecko Driver using Desired Capabilities ClassDesiredCapabilities 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 Websitedriver.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 ClassDesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver= new FirefoxDriver(capabilities);
// Launch Websitedriver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
}}
步骤4。现在, 我们将尝试找到” 生成警报框” 和” 生成确认框” 以执行警报处理操作。众所周知, 定位元素涉及对其HTML代码的检查。
请按照以下步骤在示例网页上找到下拉菜单。
- 公开网址:https://www.testandquiz.com/selenium/testing.html
- 右键单击” 生成警报框” 按钮, 然后选择” 检查元素” 。
文章图片
- 它将启动一个窗口, 其中包含开发” Generate Alert Box” 按钮时涉及的所有特定代码。
文章图片
- 记下其链接文本, 即” Generate Alert Box”
文章图片
同样, 我们将检查” 生成确认框” 按钮。
文章图片
- 记下其链接文本, 即” Generate Confirm Box”
文章图片
第五步
为了使第三和第四测试场景自动化, 我们需要编写代码, 单击并接受” 生成警报” 框, 然后单击并接受” 生成确认” 框。
下面给出的是自动执行我们的第三和第四测试场景的代码片段。
//Handling alert boxes //Click on generate alert buttondriver.findElement(By.linkText("Generate Alert Box")).click();
//Using Alert class to first switch to or focus to the alert boxAlert alert = driver.switchTo().alert();
//Using accept() method to accep the alert box alert.accept();
//Handling confirm box //Click on Generate Confirm Boxdriver.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 ClassDesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver= new FirefoxDriver(capabilities);
// Launch Websitedriver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
//Handling alert boxes//Click on generate alert buttondriver.findElement(By.linkText("Generate Alert Box")).click();
//Using Alert class to first switch to or focus to the alert boxAlert alert = (Alert) driver.switchTo().alert();
//Using accept() method to accept the alert boxalert.accept();
//Handling confirm box//Click on Generate Confirm Boxdriver.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-拖放实例图解
- Selenium WebDriver-浏览器命令实例图解
- Selenium WebDriver命令示例图解
- Selenium与C#测试教程详细步骤图解
- Selenium WebDriver教程介绍
- Selenium IDE-手动创建测试用例图解
- 移动端用Cordova将vue项目打包成app
- Android PreferenceScreen