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(); //修改name element.sendKeys("test"); element.sendKeys(Keys.RETURN); String newName = (String) ((JavascriptExecutor)driver).executeScript("return window.zTreeNode.name"); assertEquals(newName, "test"); } @AfterClass public static void destory() { System.out.println("destory..."); //关闭浏览器 driver.quit(); } }
package lesson5; import java.util.Iterator; import java.util.Set; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.JavascriptExecutor; 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 ExampleForNewWindow { 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/core/url.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];"); //点击第一个节点,弹出 zTree 官网 WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('#' + window.zTreeNode.tId + '_a').get(0);"); element.click(); //等待5秒,确保新页面加载完毕 try { (new WebDriverWait(driver, 5, 1000)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return false; } }); } catch(Exception e) {} //当前窗口的 Handle String curWindow = driver.getWindowHandle(); //全部窗口的 Handle 集合 Set<String> wins = driver.getWindowHandles(); Iterator<String> itWin = wins.iterator(); while(itWin.hasNext()) { String key = itWin.next(); if (curWindow.equals(key)) { continue; } WebDriver newDriver = driver.switchTo().window(key); System.out.println("new Window: " + newDriver.getCurrentUrl()); } } @AfterClass public static void destory() { System.out.println("destory..."); //关闭浏览器 driver.quit(); } }
今天主要接触了 switchTo 方法,使用这个方法,就可以直接切换到 iframe 窗口内,切换后使用js 时就可以把 iframe 当做当前的主窗口来使用了
package lesson5; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; public class ExampleForIframe2 { 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.php#_102"); // 等待 iframe 加载完毕,Timeout 设置10秒 try { (new WebDriverWait(driver, 10, 500)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { Boolean loaded = (Boolean) ((JavascriptExecutor)driver).executeScript("return !!demoIframe.$.fn.zTree.getZTreeObj('treeDemo');"); return loaded; } }); } catch(Exception e) { e.printStackTrace(); } driver.switchTo().frame("demoIframe"); ((JavascriptExecutor)driver).executeScript("window.zTreeObj = $.fn.zTree.getZTreeObj('treeDemo');"); //利用 expandNode 方法展开第2个根节点 ((JavascriptExecutor)driver).executeScript("window.zTreeNode = window.zTreeObj.getNodes()[1]; window.zTreeObj.expandNode(window.zTreeNode, true);"); // 等待 5 秒 try { (new WebDriverWait(driver, 5, 1000)).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return false; } }); } catch(Exception e) {} } @AfterClass public static void destory() { System.out.println("destory..."); //关闭浏览器 driver.quit(); } }
创建人 | 高元_G·Marshal |
文档编辑权限 | 创建者私有 |
文档阅读权限 | 来自分类 |
分类阅读权限 | 所有人 |
分类编辑权限 | 所有人 |
分类审核权限 | 无 |
修改日期 | 修改人 | 备注 |
2017-06-22 15:48:02[当前版本] | 高元_G·Marshal | CREAT |