2013-09-26 49 views
1

我打開一個頁面,並在測試結束時嘗試通過在finally塊中調用CelanUp()來關閉它,但有時IEDriverServer和瀏覽器仍處於打開狀態。發生這種情況時沒有打開的彈出窗口。Selenium 2.35 WebDriver退出IE 10失敗

public void CelanUp() 
    { 
     string dialogResponse = string.Empty; 

     if (m_Driver != null) 
     { 
      //Dismiss all dialogs: 
      dialogResponse = CloseLogonDialog(); 
      dialogResponse = CloseConfirmDialog(); 

      m_Driver.Quit(); 
      m_Driver = null; 
     } 

     if (dialogResponse != string.Empty) 
     { 
      throw new ApplicationException(dialogResponse); 
     } 
    } 

我還能做些什麼關閉瀏覽器和IEDriverServer?

編輯:

因爲硒的退出是讓我失望的離開窗戶打開我已經看過其他的解決方案:

try 
{ 
    foreach (Process proc in Process.GetProcessesByName("IEDriverServer.exe")) 
    { 
     proc.Kill(); 
    } 
} 
catch(Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 
+2

你在使用? NUnit的?當你打電話。退出電話得到執行罰款,但進程仍然運行?這是使用64位版本的驅動程序還是32位?測試如何運行?通過NUnit的GUI?一些自動腳本? CI?無論它如何運行,它總是這樣做嗎? – Arran

+0

對不起,回覆很慢。我正在使用內部測試工具。退出被稱爲罰款,這個過程仍然保持開放。我正在使用64位驅動程序v2.35.3.0。在20次運行中,Quit沒有關閉該進程,但.Kill做了4次。 –

回答

1

取決於你所使用的單元測試軟件,而不是做的像這樣的邏輯,我建議委託瀏覽器到單元測試框架。

將清除方法放入After方法中。如,After each test... do this

在java中,使用jUnit,它會寫成這樣。

@After 
public void cleanUp() { 
    driver.quit(); 
} 

這意味着,after each test, call driver.quit()

+0

cleanUp在測試會話結束時被調用。你對我的編輯有什麼看法? –

+0

你的編輯是_hideous!_哈哈..讓測試框架處理它。 – sircapsalot

相關問題