天天看点

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

   webdriver中处理原生js的 alert confirm 以及prompt是很方便的(虽然现在原生js的实现方式用的很少了)。具体思路是使用switchto.alert()方法定位到当前的alert/confirm/prompt(这里注意当前页面只能同时含有一个控件,如果多了会报错的,所以这就需要一一处理了),然后在调用alert的方法进行操作,alert提供了以下几个方法:

  gettext : 返回alert/confirm/prompt中的文字内容

  accept : 点击确认按钮

  dismiss : 点击取消按钮如果有取消按钮的话

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();

alert confirm = driver.switchto().alert();  //捕获confirm

string confirmtext = confirm.gettext(); //获取confirm中的文字信息

system.out.println(confirmtext);

confirm.accept();  //confirm 点击确认按钮

//      confirm.dismiss();  //confirm点击取消按钮

//点击弹出prompt

driver.findelement(by.id("prompt")).click();

alert prompt = driver.switchto().alert();  //捕获prompt

//      string prompttext = prompt.gettext(); //获取prompt中的文字信息

//      system.out.println(prompttext);

prompt.sendkeys("可能是由于太懒了");  //向prompt中输入内容

prompt.accept();  //prompt 点击确认按钮

//      prompt.dismiss();  //prompt点击取消按钮

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/

继续阅读