2014-10-11 1 views
1

다른 테스트 프레임 워크없이 WatIn을 사용하고 있습니다. NUnit 또는 다른 테스트 프레임 워크가 있습니다.IE 브라우저를 열려면 BackGroundWorker를 사용하여 WatiN을 실행하십시오.

내가 IE 브라우저를 열려면 BackGroundWorker를 실행하려고, 그것은 유형 'System.Threading.ThreadStateException'의 예외가 WatiN.Core.dll에 발생하지만에서 처리되지 않은

오류를 발생 사용자 코드

추가 정보 : Internet Explorer를 자동화하려면 CurrentThread에 ApartmentState를 ApartmentState.STA로 설정해야합니다.

stackoverflow에서 일부 스레드를 읽었지만 모든 테스트가 동일한 오류로 실패했습니다.

나를 도와 줄 사람이 있습니까?

당신은 Watin 여러 스레드를 해고 할 수

BackgroundWorker _worker = new BackgroundWorker(); 
      _worker.WorkerReportsProgress = true; 
      _worker.ProgressChanged += new ProgressChangedEventHandler(_worker_ProgressChanged); 
      _worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_worker_RunWorkerCompleted);    
      _worker.DoWork += (s, e2) => 
      { 
       Loga(usuario, senha); 
      }; 
      _worker.RunWorkerAsync(); 

    protected void Loga(string usuario, string senha) 
    {    
     using (var browser = new IE("my page here")) 
     { 
      //Code here 
     } 
    } 

답변

1

코드입니다. IE의 여러 인스턴스를 실행할 수 있습니다.

IE browser1 = new IE(); 
IE browser2 = new IE(); 

browser1.GoTo("http://www.google.com"); 
browser2.GoTo("http://www.yahoo.com"); 
관련 문제