您的位置:首页 > 其它

和我一起学 Selenium WebDriver(5)――基础篇

2013-02-22 19:38 197 查看
前面的学习已经让我们可以轻松的运行js、点击节点,下面该学习如何控制 alert、confirm 和 弹出窗口这些了

【1、如何处理 confirm 和 alert】

处理 confirm、alert 其实很简单,只需要利用 WebDriver 的 switchTo().alert() 方法就可以轻松切换到 alert 对象 Alert,进行控制。

我们直接利用 高级增删改查 的Demo 测试 alert 和 confirm,顺便还使用 sendKeys 进行文字录入的操作

Java代码







package lesson5;

import static org.junit.Assert.*;

import org.junit.AfterClass;

import org.junit.BeforeClass;

import org.junit.Test;

import org.openqa.selenium.Alert;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.support.ui.ExpectedCondition;

import org.openqa.selenium.support.ui.WebDriverWait;

public class ExampleForAlert {

static WebDriver driver;

@BeforeClass

public static void init() {

System.out.println("init...");

// 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置

System.setProperty("webdriver.firefox.bin", "D:\\Program Files\\Mozilla Firefox\\firefox.exe");

// 创建一个 FireFox 的浏览器实例

driver = new FirefoxDriver();

}

@Test

public void test() {

// 让浏览器访问 zTree Demo

driver.get("http://www.ztree.me/v3/demo/cn/exedit/edit_super.html");

// 等待 zTree 初始化完毕,Timeout 设置10秒

try {

(new WebDriverWait(driver, 10, 500)).until(new ExpectedCondition<Boolean>() {

public Boolean apply(WebDriver d) {

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#treeDemo li').get(0);");

return element != null;

}

});

} catch(Exception e) {

e.printStackTrace();

}

((JavascriptExecutor)driver).executeScript("window.zTreeObj = $.fn.zTree.getZTreeObj('treeDemo');"

+ "window.zTreeNode = window.zTreeObj.getNodes()[0];"

+ "window.zTreeObj.selectNode(window.zTreeNode);");

//点击编辑按钮,弹出 confirm

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#' + window.zTreeNode.tId + '_edit').get(0);");

element.click();

//第一次点击取消

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

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

alert.dismiss();

element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#' + window.zTreeNode.tId + '_input').get(0);");

assertNull(element);

//点击编辑按钮,弹出 confirm

element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#' + window.zTreeNode.tId + '_edit').get(0);");

element.click();

//第二次点击确定

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

alert.accept();

element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#' + window.zTreeNode.tId + '_input').get(0);");

assertNotNull(element);

//修改name

for (int i=0, j=element.getAttribute("value").length(); i<j; i++) {

element.sendKeys(Keys.BACK_SPACE);

}

element.sendKeys(Keys.RETURN);

//确定 提示信息

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

alert.accept();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: