2015-11-02 60 views
0

我正試圖將我們的測試自動化從watir-classic遷移到watir-webdriver。 (Ruby 2.0,watir-webdriver 0.9.1) 哪個工作正常,但我們的登錄過程讓我頭疼。如何避免驅動程序對象的丟失?

讓我解釋一下短會發生什麼:

  • 打開網站
  • 輸入登錄憑據並按下登錄按鈕。
  • 在網站A關閉的情況下,網站B以實際內容打開。

隨着網站的關閉,司機也失去了,我目前我無法讓駕駛者的新實例連接到網站B.

當我嘗試做創建的實例以下pageobject,我得到:

def click_loginbtn 
    @@driver.button(id: 'loginBtn').click 
    return ProjectList.new(@@driver) 
    end 

有沒有人對這個好主意:

variable name="@exception" kind="instance" value="Unable to get browser" type="Selenium::WebDriver::Error::NoSuchWindowError"

我通過這樣做呢?

回答

1

您的驅動程序仍處於活動狀態,您只需訪問新窗口即可。

要獲取可用活動窗口的列表:

@browser.windows 

您可以切換到由手柄,標題,網址,索引或收集

@browser.window(title: 'My new window').use 
@browser.windows.first.use 
+0

提圖斯在另一個窗口,感謝您的回覆。這是,再加上我需要爲IE 11添加一個註冊表項。 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE。請注意,FEATURE_BFCACHE子鍵可能存在也可能不存在,如果不存在則應該創建。在此密鑰內部,創建一個名爲iexplore.exe的值爲0的DWORD值。01​​ 有時很簡單。 –

相關問題