浏览器窗口之间切换的方法(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

 

 

posted @ 2020-03-29 16:38  小贝书屋  阅读(914)  评论(0编辑  收藏  举报