Robot framework 在同一个浏览器中切换不同选项卡,通过title来定位选项卡。Title存在不唯一的情况,选择不同的选项卡有一些困难。下面的教程,通过修改selenium配置文件,来实现更加便捷的操作。

操作如下:

D:\Python27\Lib\site-packages\robotframework_selenium2library-1.1.0-py2.7.egg\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()

D:\Python27\Lib\site-packages\robotframework_selenium2library-1.1.0-py2.7.egg\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()))

注意添加内容的缩进,否则会导致脚本无法执行  文档最后添加了修改好的文件的附件,注意把原文件备份

按上述添加上,然后可以使用他新添加的关键字了。

网上大神只写了办法,没有说明他的关键字的使用方法。

我研究了下用法,实验成功。具体脚本如下。

解释

@{b} get window handles //@{b}变量保存当前所有的窗口。@符号表示这个变量是集合。

Select window by handle  ${b[1]}//这个是取变量b里面的第二个窗口。(下标从0开始)。

方法2

浏览器窗口之间切换的方法(Select window指令,优先使用方法2)的更多相关文章

  1. Python+Selenium练习篇之19-多窗口之间切换

    本文来介绍如何处理driver在多窗口之间切换,想一下这样的场景,在页面A点击一个连接,会触发在新Tab或者新窗口打开页面B,由于之前的driver实例对象在页面A,但是你接下来的脚本是操作页面B的元 ...

  2. Selenium WebDriver- 通过源码中的关键字找到我们要操作的句柄,用于多个窗口之间切换

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  3. selenium+python浏览器窗口的切换

    1.首先需要知道当前浏览器中有多少个活动的窗口 >>> br.window_handles[u'{075a54ee-3d10-4c76-b56d-b645259bbd54}', u' ...

  4. python+selenium多窗口之间切换

    #!/usr/bin/env python # coding:utf8 # author:Z time:2018/9/19 import time from selenium import webdr ...

  5. Pychram 运行程序在 run 窗口和 python console 窗口之间切换

    有图有真相 第一步: 第二步:

  6. robot framework 关键字Switch Browser和Select Window的区别

    Switch Browser针对的是2个Open Browser以上的切换:Select Window针对的是1个Open Browser里面某个点击事件打开了另外一个新窗口 1.例子 Switch ...

  7. 使用MVVM DataTriggers在WPF XAML视图之间切换/Window窗口自适应内容大小并居中

    原文 使用MVVM DataTriggers在WPF XAML视图之间切换 相关文章: http://www.technical-recipes.com/2016/switching-between- ...

  8. 打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口。 语法: window.open([URL], [窗口名称], [参数字符串])

    打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL: ...

  9. java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一

     WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.clic ...

  10. selenium常用的API(六)浏览器窗口切换

    当使用selenium webdriver进行自动化测试打开多个窗口的时候,可能需要在不同的窗口间进行切换,webdriver提供的获取浏览器窗口句柄.切换句柄的方法如下: 获取当前窗口句柄 driv ...

随机推荐

  1. C# as 和 is 运算符区别和用法

    前言 在C#中,as 和 is 关键字都用于处理类型转换的运算符,但它们有不同的用途和行为.本文我们将详细解释这两个运算符的区别和用法. is 运算符 is 运算符用于检查对象是否是某个特定类型,或者 ...

  2. ORACLE 分页和行限制

    行限制:示例 (此语法从12C版本开始支持) 以下语句返回具有最低employee_id值的 5 名员工: SELECT employee_id, last_name FROM Employees O ...

  3. 让AI碰撞!“天翼云息壤杯”高校AI大赛江苏赛区交流会热力开场!

    由中国电信集团有限公司主办,天翼云科技有限公司承办的"天翼云息壤杯"高校AI大赛正在火热进行中.为了提高江苏赛区学生的参赛热情,增强学生的创作能力,江苏电信.天翼云华东中心于12月 ...

  4. 天翼云VPC支持专线健康检查介绍

    本文分享自天翼云开发者社区<天翼云VPC支持专线健康检查介绍>,作者:汪****波 天翼云支持本地数据中心IDC(Internet Data Center)通过冗余专线连接到天翼云云上专有 ...

  5. TortoiseGit拉取出现“Could not open repository. libgit2 returned: repository path……”错误的解决办法

    TortoiseGit拉取出现"Could not open repository. libgit2 returned: repository path--"错误的解决办法 1.问 ...

  6. Q:CRON表达式,Linux和Java的不同写法

    CRON表达式是一个字符串,包含五个到七个由空格分隔的字段(每种软件不一样),表示一组时间,通常作为执行某个程序的时间表. 调度精度: Linux的cron调度精度为分钟级别,最小粒度为分钟,而Jav ...

  7. JUC并发—9.并发安全集合二

    大纲 1.并发安全的数组列表CopyOnWriteArrayList 2.并发安全的链表队列ConcurrentLinkedQueue 3.并发编程中的阻塞队列概述 4.JUC的各种阻塞队列介绍 5. ...

  8. docker下安装Harbor

    安装docker-compose # 安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.18 ...

  9. 读论文-顺序推荐系统_挑战、进展和前景(Sequential recommender systems_ challenges, progress and prospects)

    前言 今天读的论文为一篇于2019年发表的论文,是关于顺序推荐系统(Sequential Recommender Systems,SRSs)的研究,作者对SRSs的挑战.进展和前景进行了系统综述. 要 ...

  10. wangeditor编辑器

    官网  https://www.wangeditor.com/ 在线体验DEMO   https://codepen.io/xiaokyo-the-bold/pen/ZEpWByR