selenium2library提供的切换到新窗口的关键字,只有select window,而且也只能根据title、name、url去定位。

所以这里总结了一下其他的方法。

一、 拓展selenium2library库。

即修改selenium的源码。
  • *\ Python27\Lib\site-packages\Selenium2Library\locators:找到windowmanager.py文件。

    打开编辑,增加方法

def select_by_handle(self, browser, toHandle):
browser.switch_to_window(toHandle)
def get_window_handles(self, browser):
return [ window_info[0] for window_info in self._get_window_infos(browser) ] def
get_current_window_handle(self, browser):
return browser.get_current_window_handle()

  • *:\Python27\Lib\site-packages\Selenium2Library\keywords:找到_browsermanagement.py文件。

    打开编辑,增加方法

def select_window_by_handle(self, locator=None):
self._window_manager.select_by_handle(self._current_browser(), locator)
def get_window_handles(self):
“”“Returns and logs handles of all windows known to the browser.”""
return self._log_list(self._window_manager.get_window_handles(self._current_browser()))
def get_current_window_handle(self):
“”“Returns and logs handle of current window known to the browser.”""
return self._log_list(self._window_manager.get_current_window_handle(self._current_browser()))

二、编写自己的关键字

 使用robotframework:
  • 创建“Index Item From List”关键字

  • 创建“get 新窗口”关键字

  • 创建“select新窗口/原窗口”关键字

  • 使用我们写好的关键字吧。

例子说明:最后一行,就是调用我们的“select新窗口”来切换到新打开的“href”的窗口。

${win_curr}= Get Current Window Handle #获得当前窗口
@{win_hds}= Get Window Handles    #获得当前所有的窗口
Run Keyword  click element ${item}  #这里就是打开我们的href新窗口
sleep 3
${win_child}= get新窗口 @{win_hds} #get新窗口会获取打开href新窗口后的所有窗口,会比@{win_hds}多这么一个href。这样就可以循环得到它了。
Select Window By Handle ${win_child}
[Return] ${win_child}

@{b} get window handles //@{b}变量保存当前所有的窗口。@符号表示这个变量是集合。
Select window by handle ${b[1]}//这个是取变量b里面的第二个窗口。(下标从0开始)。

RF入门:robotframwork的WEB功能测试—切换window窗口相关推荐

  1. 切换window窗口

    原文地址:http://www.cnblogs.com/testwang/p/6097621.html robotframwork的WEB功能测试(一)-切换window窗口 selenium2lib ...

  2. robotframwork的WEB功能测试(一)—切换window窗口

    selenium2library提供的切换到新窗口的关键字,只有select window,而且也只能根据title.name.url去定位.如下图所示,明显在实际使用中是不够的. 所以这里总结了一下 ...

  3. 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》

    目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node.js+koa2+mysql打造前后端分离精品项目<旧岛> 项目实战 20190317-2020 ...

  4. java web从入门到精通光盘_0基础入门 IT,Web前端、Java、C++和Linux哪种好?

    现在是21世纪,是科学技术大力发展的一个时代,IT行业已经成为现在的一个非常热门的一个行业,许许多多的人都想要往IT方面发展,找IT方面相关的一个工作. 很多想要接触IT行业的初学者伤透了脑筋,我该学 ...

  5. Flask学习 黑马程序员-6节课入门Flask框架web开发视频(中途撤退,寻找py3教程)

    文章目录 postman工具 get和post 如何给路由传参 解析 @app.route('')这个叫视图函数 Jinja2模板引擎 动态传参 注释.变量代码块以及控制代码块的使用 注释:ctrl+ ...

  6. Restlet入门例子 - RESTful web framwork for java

    RESTful系列文章索引 Restlet入门例子 - RESTful web framwork for java [原创]Jersey入门例子 官方网站介绍: http://www.restlet. ...

  7. Selenium的使用:WEB功能测试

    Selenium是ThrougthWorks公司一个强大的开源WEB功能测试工具系列,本系统包括多款软件     Selenium语言简单,用(Command,target,value)三种元素组成一 ...

  8. Unity3D入门Demo-Cube移动-触发球体-切换场景

    Unity3D入门Demo-Cube移动-触发球体-切换场景 新建Unity3D项目--选择3D类型 编写场景切换脚本ChangeScenes 添加场景切换脚本到游戏物体并保存Menu场景 新建Gam ...

  9. Web功能测试系列工具介绍-(1) MAXq

    (题外话: 本系列文章的目的是对目前业界比较流行的几种web功能测试工具进行简单介绍,一方面对自己的调研工作是个总结,另一方面算是一点积累,希望对面临同样问题的其他人有所帮助. ) *MAXQ是什么: ...

最新文章

  1. 基于Kubernetes 的机器学习工作流
  2. Vivado使用误区与进阶——XDC约束技巧之I/O篇 (下)
  3. 编程语言python培训-Python是什么样的编程语言?
  4. leetcode算法题--删除链表的节点
  5. Java中的String、StringBuilder、StringBuffer
  6. DSB2017第一名论文理解: 3D Deep Leaky Noisy-or Network(三)
  7. localhost 拒绝了我们的连接请求。_Zipkin请求链路日志聚合
  8. [转载] Java为什么不允许覆盖静态方法?
  9. 阿里研究院安筱鹏:数字化,转型与原生并行
  10. 来自Transformer + Bert + GPT 的灵魂拷问
  11. java中 uri的格式_URI与URL详解
  12. 自考大专计算机专业英语翻译,大专英语自考(上册)课文翻译及习题答案(138页)-原创力文档...
  13. 研究人员有助的网站 呸子
  14. 日文图片翻译器扫描_微信如何巧变中英文翻译器?三招教你解决翻译难题
  15. 在没有源码的情况下修改.class文件
  16. 2020“东方国信杯”高校大数据开发大赛最终榜第三名思路分享
  17. 实验:非骨干区域通过虚链路穿越非骨干区域连接骨干区域实现互联互通
  18. 5分钟学会Cron表达式
  19. MATLAB--数值计算(矩阵)
  20. ACM必学知识点清单

热门文章

  1. 三菱plc232数据线驱动下载_三菱触摸屏插上通讯线直接黑屏,老司机手把手教你解决触摸屏黑屏...
  2. 【机器学习】终于把机器学习建模的重要步骤讲清楚了
  3. i.mx6ul开发板移植openwrt系统
  4. 【每日新闻】手机安全日益重要,360手机卫士构建手机安全生态链 | 工信部:未来电子信息行业发展将聚焦5G技术
  5. 基于AnyShare Family 7的Java SDK集成开发指南
  6. 文献阅读-ICRA2020-一种在穿刺机器人插入过程中基于激光多普勒血流仪检测组织边界的新型传感方法
  7. 华为5G C-V2X车联网解决方案
  8. Qt使用workflow
  9. 论文学习:(TSN)Temporal segment networks: Towards good practices for deep action recognition
  10. 为什么String作为形参不会改变本身的值?