软件编程
位置:首页>> 软件编程>> java编程>> java selenium 操作弹出窗口示例代码

java selenium 操作弹出窗口示例代码

作者:肖佳  发布时间:2021-06-27 05:29:08 

标签:java,selenium,弹出窗口

selenium 中如何处理弹出窗口

阅读目录

  1. 原理

  2. 测试页面的HTML

  3. Java 代码

原理

在代码里, 通过         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());
 }
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com