2014-10-11 62 views
1

我只是使用WatIn而沒有其他測試框架,像NUnit或其他。用BackGroundWorker運行WatiN以打開IE瀏覽器

當我嘗試運行BackGroundWorker打開IE瀏覽器,它發生

型「System.Threading.ThreadStateException」的一個例外WatiN.Core.dll發生 但沒有處理錯誤用戶代碼

附加信息:CurrentThread需要將其設置爲 將ApartmentState設置爲ApartmentState.STA才能夠自動執行 Internet Explorer。

我在stackoverflow上讀了一些線程,但是所有的測試都失敗了,出現了同樣的錯誤。

有人可以幫助我嗎?

代碼

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");