webdriver与浏览器_操作页面元素—警告框、提示框、确认框

本文介绍了如何使用Selenium的Alert接口处理JavaScript弹出的警告框、提示框和确认框。通过定位按钮、触发点击、切换到弹窗、读取内容、发送输入、确认或取消操作,详细阐述了交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Selenium的Alert来操作javascript形式的警告框alertDialog、提示框promptDialog、确认框confirmDialog。

具体步骤如下:

1、使用xpath定位打开各项窗口的按钮,示例代码如下:

WebElement confirmButton = driver.findElement("<alertButton的xpath>");

2、单击按钮打开窗口,示例代码如下:

confirmButton.click();

3、切换到打开的窗口,示例代码如下:

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

4、获取打开的窗口中的内容并输出

System.out.println(confirmDialog.getText());

【备注】

如果打开的窗口是需要输入字符进行交互,Selenium的Alert支持键盘字符输入(sendkeys),则可以使用如下代码:

confirmDialog.sendkeys("<输入的字符串>");

5、单击窗口中的确认按钮,需要使用acccpt()方法,示例代码如下:

confirmDialog.accept();

6、交互类型的窗口一般都存在取消功能,取消功能操作使用dismiss()方法,示例代码如下:

confirmDialog.dismiss();

#################################################################################

完整的代码示例如下:

package main.java;

import java.util.ResourceBundle;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class TestDialogs {
	protected WebDriver driver;
	private static String base_url = "http://sislands.com/coin70/week1/dialogbox.htm";
	
	@Before
	public void setUp(){
		System.setProperty("webdriver.chrome.driver", "I:\\Softwares\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
		driver = new ChromeDriver();
		driver.get(base_url);
	}
	/**
	 * 运行警示框的用例
	 * 首先,通过xpath定位到警告按钮并单击
	 * 然后,切换到警告框并将其窗口控点赋予Selenium的Alert,以此来操作弹出的警告框
	 * 最后,输入警告框中的警告信息,并执行警告框中的【确认】按钮功能,使用Alert的accept()方法
	 */
	@Test
	public void testAlertDialog(){
		WebElement alertButton = driver.findElement(By.xpath("/html/body/div/center/table/tbody/tr/td/form[1]/p/input"));
		alertButton.click();
		
		Alert jsAlert = driver.switchTo().alert(); //切换到警告框并将其窗口控点赋予Selenium的Alert,以此来操作弹出的警告框
		System.out.println(jsAlert.getText());
		jsAlert.accept();
	}
	
	/**
	 * 运行提示框的用例
	 * 首先,通过xpath定位到提示框按钮并单击
	 * 然后,切换到提示框并将窗口控点赋值给Selenium的Alert,并在弹出的提示对话窗口中的文本框中输入一段字符串
	 * 其次,单击确认按钮
	 * 紧接以上步骤,再次对提示框进行以上操作并单击取消按钮 
	 */
	@Test
	public void testPromptDialog(){
		WebElement promptButton = driver.findElement(By.xpath("/html/body/div/center/table/tbody/tr/td/form[2]/p/input"));
		promptButton.click();
		
		//通过单击提示对话框按钮弹出的提示框selenium处理
		Alert jsPrompt = driver.switchTo().alert();
		//在弹出的提示对话框文本框中输入字符串
		jsPrompt.sendKeys("White");
		//单击提示框中的确认按钮保存输入的信息
		jsPrompt.accept();
		//获取保存成功后弹出的提示框中的文本信息
		System.out.println("单击prompt按钮后弹出的窗口内容中输入内容并确认后返回的信息是:"+jsPrompt.getText());
		//在保存信息确认提示框中,单击确认按钮关闭当前提示窗口
		jsPrompt=driver.switchTo().alert();
		jsPrompt.accept();
		
		
		//再次对提示框进行操作并单击取消按钮
		promptButton.click();
		jsPrompt = driver.switchTo().alert();
		System.out.println("单击prompt按钮后弹出的窗口内容为:"+jsPrompt.getText());
		jsPrompt.dismiss();//单击取消按钮
		//在弹出的取消确认窗口中获取文本信息
		jsPrompt=driver.switchTo().alert();
		System.out.println("在弹出的提示窗口中单击取消按钮后再次弹出的窗口内容为:"+jsPrompt.getText());
		jsPrompt.accept();//在取消确认窗口中单击确认按钮以关闭当前窗口
		
	}
	
	
	/**
	 * 运行确认框的测试用例
	 * 首先,通过xpath定位到确认框按钮并单击
	 * 然后,使用Selnium的Alert赋值给弹出的确认窗口控点,,并获取该窗口中的内容
	 * 其次,在弹出的确认窗口中,单击【确认】按钮,
	 * 再次,切换到确认后弹出的信息窗口,并获取该窗口内容
	 * 最后,再次执行以上步骤进行确认框的取消功能操作
	 */
	@Test
	public void testConfirmDialog(){
		WebElement confirmButton = driver.findElement(By.xpath("/html/body/div[1]/center/table/tbody/tr/td/form[3]/p/input"));
		confirmButton.click();
		Alert jsConfirm = driver.switchTo().alert();
	    System.out.println("单击confirm按钮后弹出的窗口内容为:"+jsConfirm.getText());
	    jsConfirm.accept();
	    jsConfirm = driver.switchTo().alert();//切换到单击确认后再次弹出的确认提示窗口
	    System.out.println("在弹出的confirm窗口中单击确认按钮后弹出的确认窗口内容为:"+jsConfirm.getText());
	    jsConfirm.accept();//单击确认后弹出的提示窗口中的确定按钮
	    
	    //再次执行confirm窗口的取消功能操作
	    confirmButton.click();
	    jsConfirm=driver.switchTo().alert();
	    //此处直接单击取消按钮
	    jsConfirm.dismiss();
	    //获取取消操作之后弹出的取消成功的提示窗口内容
	    System.out.println("在弹出的confirm窗口中单击取消后返回的取消成功提示窗口内容:"+jsConfirm.getText());
	    //关闭取消成功提示窗口
	    jsConfirm.accept();
		
	}
	//在各个test运行结束后,记得关闭driver
	@After
	public void testDriverDown(){
		driver.quit();
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值