个性化阅读
专注于IT技术分析

Selenium WebDriver-处理警报实例图解

在本节中, 你将学习如何在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
  • 点击”生成警报框”按钮
  • 点击”生成确认框”按钮
  • 关闭浏览器

我们将逐步创建测试用例, 以使你全面了解如何在WebDriver中处理警报。

步骤1。启动Eclipse IDE, 并打开我们在本教程前面的课程中创建的现有测试套件” Demo_Test”。

第2步。右键单击” src”文件夹, 然后从”新建”>”类”创建一个新的类文件。

Selenium WebDriver-处理警报

输入你的班级名称为” alert_test”, 然后单击”完成”按钮。

Selenium WebDriver-处理警报

第三步让我们进入编码基础。

  • 要调用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"); 
	
	}

}

步骤4。现在, 我们将尝试找到”生成警报框”和”生成确认框”以执行警报处理操作。众所周知, 定位元素涉及对其HTML代码的检查。

请按照以下步骤在示例网页上找到下拉菜单。

  • 公开网址:https://www.testandquiz.com/selenium/testing.html
  • 右键单击”生成警报框”按钮, 然后选择”检查元素”。
Selenium WebDriver-处理警报
  • 它将启动一个窗口, 其中包含开发” Generate Alert Box”按钮时涉及的所有特定代码。
Selenium WebDriver-处理警报
  • 记下其链接文本, 即” Generate Alert Box”
Selenium WebDriver-处理警报

同样, 我们将检查”生成确认框”按钮。

Selenium WebDriver-处理警报
  • 记下其链接文本, 即” Generate Confirm Box”
Selenium WebDriver-处理警报

第五步

为了使第三和第四测试场景自动化, 我们需要编写代码, 单击并接受”生成警报”框, 然后单击并接受”生成确认”框。

下面给出的是自动执行我们的第三和第四测试场景的代码片段。

//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浏览器并自动执行所有测试方案。

赞(0)
未经允许不得转载:srcmini » Selenium WebDriver-处理警报实例图解

评论 抢沙发

评论前必须登录!