美文网首页
robot framework窗口切换

robot framework窗口切换

作者: 小流_跬步 | 来源:发表于2017-05-05 11:03 被阅读0次

    这里暂做个记录,问题先解决到这里,后期如果能完善该问题再来更新

    疑问: robot framework中通过browser.switch_to_handle(handle)进行窗口切换时候,程序是正常切换了,但是浏览器上展示的当前窗口并没有切换

    目标:在浏览器窗口A上有个链接,点击后同一浏览器打开窗口B,在A和B窗口之间互相切换,并获取对应窗口的元素

    一.尝试方案(参考文章地址 http://www.cnblogs.com/testwang/p/6097621.html)

    1.在D:\Python27\Lib\site-packages\Selenium2Library\locators\windowmanager.py文件中增加方法


    def select_by_handle(self,browser,handle):

        browser.switch_to_window(handle)

    print "toHandle: "+ handle

    def get_window_handles_bylh(self,browser):

        return [window_info[0]forwindow_infoinself._get_window_infos(browser)]

    def get_current_window_handle_bylh(self,browser):

        return browser.get_current_window_handle()


    2.在D:\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_bylh(self):

        """Returns and logs handles of all windows known to the browser."""

        return self._log_list(self._window_manager.get_window_handles_bylh(self._current_browser()))

    def get_current_window_handle_bylh(self):

        """Returns and logs handle of current window known to the browser."""

        return self._log_list(self._window_manager.get_current_window_handle_bylh(self._current_browser()))


    实验场景1

    1.通过get window handles bylh方法获取当前浏览器中A和B窗口的句柄

    2.通过select_window_by_handle从A窗口切换到B窗口,获取B窗口中的元素

    实验场景1结果

    浏览器中的页面从A窗口跳转到B窗口,元素获取成功获取

    实验场景2

    1.通过get window handles bylh方法获取当前浏览器中A和B窗口的句柄

    2.通过select_window_by_handle从A窗口切换到B窗口

    3.再次通过select_window_by_handl从B窗口切换到A窗口,获取A窗口中的元素

    实验场景2结果

    浏览器中页面上还是展示B窗口,但能正常获取到A窗口中的元素

    实验场景3

    1.通过get window handles bylh方法获取当前浏览器中A和B窗口的句柄

    2.通过select_window_by_handle从A窗口切换到B窗口

    3.再次通过select_window_by_handl从B窗口切换到A窗口,获取B窗口中的元素

    实验场景3结果

    浏览器中页面上先是展示B窗口,等到获取B窗口中的元素失败后,浏览器中的窗口切换到A窗口

    三个场景中获取浏览器的get window handles bylh和select_window_by_handle方法都正常

    场景三运行结果

    相关文章

      网友评论

          本文标题:robot framework窗口切换

          本文链接:https://www.haomeiwen.com/subject/kkvjtxtx.html