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

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

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());
 }
标签:java,selenium,弹出窗口
0
投稿

猜你喜欢

  • 深入探究Java线程与进程有哪些区别

    2023-05-06 13:26:03
  • java 单例的五种实现方式及其性能分析

    2023-05-10 10:50:51
  • C#交错数组用法实例

    2022-08-13 09:34:55
  • 关于Android中WebView远程代码执行漏洞浅析

    2023-02-21 13:36:21
  • C#实现读取指定盘符硬盘序列号的方法

    2023-05-23 15:06:39
  • struts2实现多文件上传的示例代码

    2022-03-09 23:40:54
  • C#中Span相关的性能优化建议

    2021-07-05 15:42:26
  • IDEA全量替换一次性解决旧项目并将所有文件换行符改为LF问题

    2022-09-17 18:44:32
  • 浅析C# 委托(Delegate)

    2023-01-26 20:11:45
  • Java实现单向链表的基本功能详解

    2022-12-18 10:57:02
  • Springboot 使用maven release插件执行版本管理及打包操作

    2023-07-12 01:20:35
  • SpringBoot使用自动配置xxxAutoConfiguration

    2022-11-20 09:05:56
  • java调用oracle分页存储过程示例

    2021-06-08 12:44:16
  • SpringBoot整合JDBC、Druid数据源的示例代码

    2022-06-19 20:44:24
  • WPF使用Geometry绘制几何图形

    2023-08-14 14:13:31
  • Java中如何使用Response重定向

    2023-08-03 07:41:07
  • IntelliJ IDEA 常用设置(配置)吐血整理(首次安装必需)

    2021-06-24 15:23:49
  • C# 循环判断会进来几次的实现代码

    2021-12-27 15:10:51
  • spring boot 全局异常处理方法汇总

    2021-07-06 22:44:04
  • C的|、||、&、&&、异或、~、!运算符

    2022-05-30 13:10:30
  • asp之家 软件编程 m.aspxhome.com