Я просто использую WatIn без каких-либо других тестов, таких как NUnit или другие.
Когда я пытаюсь запустить 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
}
}
Вы не можете запускать несколько потоков с помощью Watin. но вы можете запустить несколько экземпляров IE:
IE browser1 = new IE();
IE browser2 = new IE();
browser1.GoTo("http://www.google.com");
browser2.GoTo("http://www.yahoo.com");