[在web自动化测试中点击一个链接然后弹出新窗口是比较司空见惯的事情。webdriver中处理弹出窗口跟处理frame差不多,以下面的html代码为例window.html      Popup Window

在webdriver官方的api中,切换窗口的方法提供的参数是nameOrHandle。 引用 WebDriver window(java.lang.String nameOrHandle)

Switch the focus of future commands for this driver to the window with the given name/handle.

但是在实际运用中,更多的可能是需要根据新窗口的title去切换窗口。因此封装了如下方法:

public boolean switchToWindow(WebDriver driver,String windowTitle){

boolean flag = false;

try {

String currentHandle = driver.getWindowHandle();

Set handles = driver.getWindowHandles();

for (String s : handles) {

if (s.equals(currentHandle))

continue;

else {

driver.switchTo().window(s);

if (driver.getTitle().contains(windowTitle)) {

flag = true;

System.out.println("Switch to window: "

+ windowTitle + " successfully!");

break;

} else

continue;

}

}

} catch (NoSuchWindowException e) {

System.out.println("Window: " + windowTitle

+ " cound not found!", e.fillInStackTrace());

flag = false;

}

return flag;

}

首先获取当前driver驱动的所有窗口的handle然后进行比对筛选,[在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id、name的时候。当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.phptid=791 。如果窗口的title符合预期,则切换,并返回true,反之则返回false。[webdriver 子窗口的关闭, webdriver quit, webdriver close]

selenium切换窗口 java_WebDriver(Selenium2) 根据新窗口title切换窗口相关推荐

  1. linux screen窗口 jupyter notebook 激活环境后无法切换到指定虚拟环境

    linux 使用screen窗口 jupyter notebook 激活环境后无法切换到指定虚拟环境,始终是Base 使用screen 命令新开窗口,使用source activate激活环境发现no ...

  2. python生成一个窗口_PyQt5创建一个新窗口的实例

    更多python教程请到友情连接: 菜鸟教程www.piaodoo.com 人人影视www.sfkyty.com 飞卢小说网www.591319.com 韩剧网www.op-kg.com 兴化论坛ww ...

  3. 设置超链接在新的窗口中打开,而不是在本窗口中打开

    <a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a> 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的.名称 ...

  4. SQL 新加字段查询窗口报错

    SQL 新加字段查询窗口报错 这是由于SQL Server的intellisense的引起的,intellisense是SQL Server的智能记录智能感知功能,即当给sql表名加上".& ...

  5. 网站服务器打开新页面,什么网页适合新窗口打开?哪些网页又适合当前窗口打开?...

    原标题:什么网页适合新窗口打开?哪些网页又适合当前窗口打开? 关于网页是新窗口打开好,还是当天窗口打开好,其实没有严格规定,主要根据网站内容来确定,有些网页需要新窗口打开,有些则不需要,今天四爷推就简 ...

  6. Vue/Angular中父窗口新开的子窗口关闭的时候刷新父窗口

    最近遇到一个项目需求:Angular中父窗口新开的子窗口提交完信息关闭的时候刷新父窗口. 知识点: window.opener 概述 返回打开当前窗口的那个窗口的引用,例如:在window A中打开了 ...

  7. selenium定位元素的方法_selenium定位元素之冻结窗口

    我们在使用selenium进行元素定位的时候,会发现有很多需要操作的元素是随着鼠标移动与移出才会显示与隐藏,不能通过页面窗口实时看到自己的定位是否准确.这就给我们定位工作带来了一些困扰. 这种情况下我 ...

  8. Silverlight 5 Beta新特性[3]多窗口支持

    前面两篇分别介绍Silverlight 5 Beta中XAML数据绑定支持的断点调试和鼠标的多重点击实现. 本篇将解析Silverlight 5 Beta版本中对OOB模式下多窗口的支持. 谈到Sil ...

  9. C语言获取窗口dc,C语言新案例-捕获电脑桌面并打印

    原标题:C语言新案例-捕获电脑桌面并打印 01 C语言新案例-捕获电脑桌面并打印 //今晚内容:C语言新案例-捕获电脑桌面并打印 //讲课老师:范志军 QQ:208824435 #include #i ...

最新文章

  1. 去除tableview中每个cell的分段线
  2. 编码练习——Java-3-数组
  3. mui几种页面跳转方式对比
  4. POJ1179,P4342-[IOI1998]Polygon【区间dp】
  5. RabbitMQ的5种队列_通配符模式_入门试炼_第8篇
  6. linux系统防火墙配置浅谈
  7. JavaScript 存储Cookie
  8. hyperv动态内存Linux,Linux 之动态分配内存方式
  9. 初入SysML之模块定义图
  10. 我的 8 年投资心路历程
  11. Docker常见命令---简易教程
  12. mooc中习题--简单运算器
  13. 释放vmware磁盘空间
  14. Andorid AlertDialog 点击后自动消失_为何孙悟空成佛后,金箍儿就会自动消失?金箍儿究竟代表什么...
  15. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍...
  16. DH参数例子-SCARA机器人
  17. 最新kali之masscan
  18. Unity Shader案例之——阴阳师画符效果
  19. 转载:TD之父李世鹤:TD即将安乐死
  20. (单细胞-SingleCell)单细胞可变剪切流程(一)

热门文章

  1. What happens when passing an non-exist text object to API
  2. IBASE component deletion
  3. Advanced search view打开出错的问题
  4. How is assignment blocks of overview pages read from configuration
  5. 一些通过SAP ABAP代码审查得出的ABAP编程代码优化建议
  6. 使用VM Tools让VMware虚拟机里的ubuntu能够共享Windows系统的文件夹
  7. 使用Recast.AI创建具有人工智能的聊天机器人
  8. CRM和ERP的Sales Organization的映射关系
  9. 一定要会的synchronized关键字的用法
  10. python学习-文件的读写操作