2014-10-11 3 views
1

Я просто использую WatIn без каких-либо других тестов, как NUnit или другие.Запустите WatiN с BackGroundWorker, чтобы открыть браузер IE

Когда я пытаюсь запустить BackGroundWorker открыть IE браузер, это происходит ошибка

Исключение типа «System.Threading.ThreadStateException» произошло в WatiN.Core.dll, но не обрабатывается код пользователя

Дополнительная информация: The 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

Вы не можете запустить несколько потоков с WatiN. но вы можете запустить несколько экземпляров IE:

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

browser1.GoTo("http://www.google.com"); 
browser2.GoTo("http://www.yahoo.com"); 
Смежные вопросы