Selenium2.0功能测试之Alert/Confirm/Prompt的处理

发表于:2013-10-17 11:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CoderInfo    来源:CoderInfo的专栏

  WebDriver中处理原生JS的 alert confirm 以及prompt是很方便的(虽然现在原生JS的实现方式用的很少了)。具体思路是使用switchTo.alert()方法定位到当前的alert/confirm/prompt(这里注意当前页面只能同时含有一个控件,如果多了会报错的,所以这就需要一一处理了),然后在调用Alert的方法进行操作,Alert提供了以下几个方法:
  getText : 返回alert/confirm/prompt中的文字内容
  accept : 点击确认按钮
  dismiss : 点击取消按钮如果有取消按钮的话
  sendKeys : 向prompt中输入文字    //这个方法在chromedriver中不起作用,IE的话由于家中无Windows没有做demo.
package org.coderinfo.demo;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class AlertDemo {
private static final String URL = "file:///home/moon/Desktop/alert_demo.html";
/**
* @author CoderInfo
*/
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new FirefoxDriver();  //创建一个firefox的 webdriver
driver.get(URL);
driver.manage().window().maximize();
Thread.sleep(1000);
// 点击弹出alert
driver.findElement(By.id("alert")).click();
Thread.sleep(3000);
Alert alert = driver.switchTo().alert(); //捕获alert
alert.accept();  //点击确认按钮
Thread.sleep(3000);  //等待3s
//点击弹出confirm
driver.findElement(By.id("confirm")).click();
Thread.sleep(3000);
Alert confirm = driver.switchTo().alert();  //捕获confirm
String confirmText = confirm.getText(); //获取confirm中的文字信息
System.out.println(confirmText);
confirm.accept();  //confirm 点击确认按钮
//      confirm.dismiss();  //confirm点击取消按钮
Thread.sleep(3000);
//点击弹出prompt
driver.findElement(By.id("prompt")).click();
Thread.sleep(3000);
Alert prompt = driver.switchTo().alert();  //捕获prompt
//      String promptText = prompt.getText(); //获取prompt中的文字信息
//      System.out.println(promptText);
prompt.sendKeys("可能是由于太懒了");  //向prompt中输入内容
Thread.sleep(3000);
prompt.accept();  //prompt 点击确认按钮
//      prompt.dismiss();  //prompt点击取消按钮
Thread.sleep(3000);
driver.quit(); // close webdriver
}
}
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号