当前位置: 首页 > 编程笔记 >

Java Selenium实现多窗口切换的示例代码

潘彦
2023-03-14
本文向大家介绍Java Selenium实现多窗口切换的示例代码,包括了Java Selenium实现多窗口切换的示例代码的使用技巧和注意事项,需要的朋友参考一下

在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,就需要主机切换到新窗口进行操作。WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换。

  • 获取当前窗口浏览器句柄:driver.getWindowHandle();
  • 获取所有窗口的浏览器句柄到当前会话:driver.getWindowHandles();
  • 用于不同窗口的切换:switchTo().window();

在页面操作过程中有时候点击某个链接会弹出新的窗口, 这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switchTo().window()方法可以实现在不同的窗口之间切换。

以百度首页和百度注册页为例,在两个窗口之间的切换如下图。

实现窗口切换的代码如下:

import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MoreWindows {

 public static void main(String[] arge) throws InterruptedException{

  WebDriver driver = new ChromeDriver();
  driver.get("https://www.baidu.com");

  //获得当前窗口句柄
  String search_handle = driver.getWindowHandle();

  //打开百度注册窗口
  driver.findElement(By.linkText("登录")).click();
  Thread.sleep(3000);
  driver.findElement(By.linkText("立即注册")).click();

  //获得所有窗口句柄
  Set<String> handles = driver.getWindowHandles();

  //判断是否为注册窗口, 并操作注册窗口上的元素
  for(String handle : handles){
   if (handle.equals(search_handle)==false){
    //切换到注册页面
    driver.switchTo().window(handle);
    System.out.println("now register window!");
    Thread.sleep(2000);
    driver.findElement(By.name("userName")).clear();
    driver.findElement(By.name("userName")).sendKeys("user name");
    driver.findElement(By.name("phone")).clear();
    driver.findElement(By.name("phone")).sendKeys("phone number");
    //......
    Thread.sleep(2000);
    //关闭当前窗口
    driver.close();
   }
  }
  Thread.sleep(2000);

  driver.quit();
 }
}

在本例中所涉及的新方法如下:

  • getWindowHandle(): 获得当前窗口句柄。
  • getWindowHandles(): 返回的所有窗口的句柄到当前会话。
  • switchTo().window(): 用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切换, 后者用于不同表单之间的切换。

到此这篇关于Java Selenium实现多窗口切换的示例代码的文章就介绍到这了,更多相关Java Selenium 多窗口切换内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍JS简单实现tab切换效果的多窗口显示功能,包括了JS简单实现tab切换效果的多窗口显示功能的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS简单实现tab切换效果的多窗口显示功能。分享给大家供大家参考,具体如下: 效果图: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript遍历算法与技巧总结》、《JavaScript切换特效与技巧总结》

  • 本文向大家介绍Jquery仿IGoogle实现可拖动窗口示例代码,包括了Jquery仿IGoogle实现可拖动窗口示例代码的使用技巧和注意事项,需要的朋友参考一下 google可谓是ajax的特效用的淋漓尽致,google suggest, google map,igoogle 可拖动窗口等等...今天要做一个网站的类似效果,仿照iGoogle做了一个简单的小demo。 这个的demo是根据一个J

  • 本文向大家介绍TabLayout+ViewPager实现切页的示例代码,包括了TabLayout+ViewPager实现切页的示例代码的使用技巧和注意事项,需要的朋友参考一下 安卓使用TabLayout+ViewPager+Fragment 实现页面切换,可实现左右滑动切换视图界面和点击切换 可自定义菜单栏是在顶部还是在底部 一、实现效果: 二、实现过程: 2.1 一些重要的设置 添加必须依赖:

  • 本文向大家介绍jquery+css实现Tab栏切换的代码实例,包括了jquery+css实现Tab栏切换的代码实例的使用技巧和注意事项,需要的朋友参考一下 前几天面试碰到现场给写一个Tab栏切换的功能,思想基本上懂,但是好久没写过,一时要全部实现效果还真有点难。回来后,再把思路理一理,写一个,基础还是很重要的。 最终要实现的效果图如下: (1)点击tab栏显示对应的内容,并且tab栏样式变化。实现

  • 我正在IE上测试。单击后,我切换到子窗口,但无法返回父窗口,出现错误“窗口已关闭”。

  • 本文向大家介绍spring boot实现profiles动态切换的示例,包括了spring boot实现profiles动态切换的示例的使用技巧和注意事项,需要的朋友参考一下 具体做法: 1、首先在pom中添加profiles: dev指开发模式,prod指生产模式,如需其他模式,只需要添加profile即可. 2、在pom.xml的build中添加plugin: 该配置用来在打包的时候修改配置文