2013-09-26 2 views
1

페이지를 열고 테스트를 마친 후 finally 블록에서 CelanUp()을 호출하여 테스트를 닫으려고 시도하지만 가끔 IEDriverServer와 브라우저가 열려 있습니다. 이런 일이 발생하면 열려있는 팝업이 없습니다.Selenium 2.35 IE 10에서 WebDriver가 종료되지 않는다

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? 호출 할 때 .Quit는 호출이 잘 실행되지만 프로세스가 여전히 실행 중입니까? 이 드라이버 또는 32 비트 64 비트 버전을 사용하고 있습니까? 테스트는 어떻게 실행됩니까? NUnit의 GUI를 통해? 일부 자동화 된 스크립트? CI? 어떻게 실행 되더라도 항상이 작업을 수행합니까? – Arran

+0

느린 답장을 드려 죄송합니다. 나는 사내 테스트기구를 사용하고있다. 종료는 괜찮고 프로세스는 여전히 열린 상태로 유지됩니다. 64 비트 드라이버 v2.35.3.0을 사용하고 있습니다. 20 득점. 과정을 끝내지 않았지만. 킬이 4 번이나 했어. –

답변

1

당신이 사용중인 단위 테스트 소프트웨어에 따라 대신하고 이런 논리라면 브라우저를 단위 테스트 프레임 워크에 위임하는 것이 좋습니다.

After 방법으로 정리 방법을 넣으십시오. 예 : After each test... do this

자바에서는 jUnit을 사용하면 다음과 같이 작성됩니다.

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

이 의미, 당신이 사용하는 어떤 after each test, call driver.quit()

+0

테스트 세션이 끝날 때 cleanUp이 호출됩니다. 내 편집에 대해 어떻게 생각하세요? –

+0

당신의 편집은 _hideous! _ haha ​​.. 테스트 프레임 워크가 처리하게하십시오. – sircapsalot

관련 문제