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

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开始)。

猜你喜欢

转载自blog.csdn.net/weixin_39870031/article/details/82746680