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方法都正常

場景三運行結果


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容