robot framework窗口切换

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

疑问: 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窗口切换_第1张图片

你可能感兴趣的:(robot framework窗口切换)