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

简介:
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
}
}

 下面是测试页面alert_demo.html源代码
<html>
<head>
<title>Alert</title>
<script type="text/javascript">
function testAlert(){
alert("测试Alert");
}
function testConfirm(){
confirm("你喜欢自动化测试吗?");
}
function testPrompt(){
var content = prompt("你为什么喜欢自动化?");
document.write(content);
}
</script>
</head>
<body>
<h2>Test Alert</h2>
<input type="button" value="alert" onclick="testAlert()" id="alert"/>
<input type="button" value="confirm" onclick="testConfirm()" id="confirm"/>
<input type="button" value="prompt" onclick="testPrompt()" id="prompt"/>
</body>
</html>
   


最新内容请见作者的GitHub页:http://qaseven.github.io/
  
目录
相关文章
|
15天前
|
Web App开发 机器学习/深度学习 测试技术
软件测试中的自动化策略:以Selenium为例
【8月更文挑战第31天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发的兴起,自动化测试成为提升效率和确保产品质量的关键手段。本文将介绍如何利用Selenium工具实现软件的自动化测试,从搭建环境到编写测试脚本,再到执行和分析结果,我们将一步步揭示自动化测试的全过程。文章旨在通过具体示例,帮助读者理解并运用自动化测试技术,提高测试工作的效率和效果。
|
5天前
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。
|
15天前
|
传感器 物联网 测试技术
未来科技浪潮中的领航者:区块链、物联网与虚拟现实的融合与创新探索自动化测试之美——以Selenium为例
【8月更文挑战第30天】本文深入探讨了当前最前沿的技术趋势——区块链、物联网和虚拟现实,并分析了它们各自的发展脉络及相互之间的融合可能性。我们将通过具体应用场景描绘这些技术如何塑造未来社会的面貌,同时提供代码示例以加深理解。文章旨在为读者揭示这些技术背后的巨大潜力,以及它们将如何影响我们的工作和生活方式。
|
15天前
|
Web App开发 设计模式 测试技术
探索自动化测试的奥秘:以Selenium为例
【8月更文挑战第31天】在软件开发的世界中,质量是王道。而测试,则是确保软件质量的关键步骤。本文将深入浅出地介绍自动化测试的魅力所在,以Selenium这一流行的开源工具为例,带领读者了解如何通过编写简单的代码来自动执行测试用例,从而提高测试效率和准确性。无论你是测试新手还是希望提升自动化水平的老手,这篇文章都将是你的宝贵财富。
|
15天前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。
|
15天前
|
Web App开发 XML 测试技术
自动化测试框架设计:以Python和Selenium为例
【8月更文挑战第31天】在软件开发的快节奏中,自动化测试成为确保产品质量的关键步骤。本文将引导读者了解如何结合Python语言和Selenium工具来设计一个高效的自动化测试框架。通过浅显易懂的语言和实际代码示例,我们将探索自动化测试框架的核心组件,并学习如何实现它们。无论你是测试新手还是希望提升自动化技能的开发者,这篇文章都将为你打开一扇通向高效软件测试的大门。
|
1天前
|
JavaScript 前端开发 测试技术
Selenium2Library实现基于GUI的测试
Selenium2Library实现基于GUI的测试
4 0
|
14天前
|
Web App开发 Java 测试技术
自动化测试的新篇章:使用Selenium WebDriver进行高效测试
【8月更文挑战第31天】 在软件开发的海洋中,自动化测试犹如一艘航船,带领着质量保证团队驶向效率与精准的彼岸。本文将揭开Selenium WebDriver的神秘面纱,通过实际案例引导您掌握这一强大的自动化测试工具。我们将从Selenium WebDriver的基础概念出发,逐步深入到代码示例,最后探讨其在现实项目中的应用场景和优势,旨在为您的软件测试之旅提供清晰的指南。
|
14天前
|
Web App开发 测试技术 持续交付
探索自动化测试:以Selenium和Python为例
【8月更文挑战第31天】自动化测试在现代软件开发中扮演着不可或缺的角色。本文将通过一个简化的示例,展示如何使用Selenium和Python进行Web应用的自动化测试。我们将从安装必要的工具开始,逐步构建一个简单的测试脚本,并执行它来验证其功能。通过这个过程,我们旨在揭示自动化测试的价值,并激励读者深入探索这一领域。
|
14天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【8月更文挑战第31天】在软件开发的世界中,自动化测试是提高产品质量和开发效率不可或缺的一环。本文将深入探讨Selenium这一强大的自动化测试工具,从其架构、优势到实战应用,一步步揭示如何利用Selenium框架提升软件测试的效率和准确性。通过具体的代码示例,我们将展示Selenium如何简化测试流程,帮助开发者快速定位问题,确保软件的稳定性和可靠性。无论你是测试新手还是资深开发者,这篇文章都将为你打开一扇通往高效自动化测试的大门。