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

 更新时间:2016年08月15日 08:53: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());
  }

以上就是关于Java selenium 操作弹窗窗口的示例,后续继续整理相关资料,谢谢大家对本站的支持!

相关文章

  • Java Arrays.AsList原理及用法实例

    Java Arrays.AsList原理及用法实例

    这篇文章主要介绍了Java Arrays.AsList原理及用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Android实现兼容的水波纹效果

    Android实现兼容的水波纹效果

    Android的水波纹效果只有高版本才有,我们希望自己的应用在低版本用低版本的阴影,而高版本用水波纹,这怎么做呢?下面一起来学习学习。
    2016-08-08
  • Spring-Retry(重试机制)解读

    Spring-Retry(重试机制)解读

    这篇文章主要介绍了Spring-Retry(重试机制),具有很好的价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 详解如何利用jasypt实现配置文件加密

    详解如何利用jasypt实现配置文件加密

    Jasypt (Java Simplified Encryption) 是一个 java 库,它允许开发人员以最小的成本将基本的加密功能添加到项目中,而无需深入了解密码学的工作原理。本文将利用jasypt实现配置文件加密,感兴趣的可以学习一下
    2022-07-07
  • 利用Java读取Word表格中文本和图片的方法实例

    利用Java读取Word表格中文本和图片的方法实例

    这篇文章主要给大家介绍了关于如何利用Java读取Word表格中文本和图片的相关资料,主要利用的是free spire.doc.jar 包,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • 妙用Java8中的Function接口消灭if...else

    妙用Java8中的Function接口消灭if...else

    在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操作。这些if...else...充斥在代码中严重影响了代码代码的美观,本文就妙用Java8中的Function接口消灭if...else,感兴趣的可以了解一下
    2022-01-01
  • SpringBoot过滤器与拦截器使用方法深入分析

    SpringBoot过滤器与拦截器使用方法深入分析

    大家应该都晓得实现过滤器需要实现 javax.servlet.Filter 接口,而拦截器会在处理指定请求之前和之后进行相关操作,配置拦截器需要两步,本文通过实例代码给大家介绍SpringBoot 过滤器和拦截器的相关知识,感兴趣的朋友一起看看吧
    2022-12-12
  • java中Date和Timestamp类型的相互转换方式

    java中Date和Timestamp类型的相互转换方式

    这篇文章主要介绍了java中Date和Timestamp类型的相互转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java 基础语法中的逻辑控制

    Java 基础语法中的逻辑控制

    这篇文章主要介绍了Java 基础语法中的逻辑控制的相关资料,需要的朋友可以参考下面文章内容
    2021-09-09
  • spring boot多数据源动态切换代码实例

    spring boot多数据源动态切换代码实例

    这篇文章主要介绍了spring boot多数据源动态切换代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论