2014-10-11 67 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");