本文将先容在Selenium中如那里理惩罚弹出窗口。
道理
在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles();
来获取到所有弹出欣赏器的句柄,图纸加密,劳务派遣管理系统, 然后遍历, 利用swithcto.window(newwindow_handle)要领。 就可以定位到新的窗口。
测试页面的HTML
<html> <head> <title>常见web ui元素操纵,软件开发, 及API利用</title> <script type="text/javascript"> function open_win() { window.open("http://www.cnblogs.com") } </script> </head> <body> <form> <input type=button value="打开窗口" onclick="open_win()"> </form> </div> </body> </html>
Java 代码
public static void testMultipleWindowsTitle(WebDriver driver) throws Exception { String url="E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\Selenium Webdriver\\AllUIElement.html"; driver.get(url); // 获取当前窗口的句柄 String parentWindowId = driver.getWindowHandle(); System.out.println("driver.getTitle(): " + driver.getTitle()); WebElement button = driver.findElement(By.xpath("//input[@value='打开窗口']")); button.click(); Set<String> allWindowsId = driver.getWindowHandles(); // 获取所有的打开窗口的句柄 for (String windowId : allWindowsId) { if (driver.switchTo().window(windowId).getTitle().contains("博客园")) { driver.switchTo().window(windowId); break; } } System.out.println("driver.getTitle(): " + driver.getTitle()); // 再次切换回本来的父窗口 driver.switchTo().window(parentWindowId); System.out.println("parentWindowId: " + driver.getTitle()); }
附: selenium java教程 (连载中, 敬请等候)
java selenium (一) selenium 先容
java selenium (二) 情况搭建要领一
java selenium (三) 情况搭建 基于Maven
java selenium (四) 利用欣赏器调试东西
java selenium (五) 元素定位大全
java selenium (六) xpath 定位
java selenium (七) CSS 定位
java selenium (八) Selenium IDE 用法
java selenium (九) 常见web UI 元素操纵 及API利用
java selenium (十) 操纵欣赏器
java selenium (十一) 操纵弹出对话框
java selenium (十二) 操纵弹出窗口
java selenium (十三) 智能期待页面加载完成
java selenium (十四) 处理惩罚Iframe 中的元素