浏览器窗口之间切换的方法(Select window指令,优先使用方法2)
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