我只是使用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
}
}
答案 0 :(得分:1)
您无法使用Watin启动多个线程。但你可以触发IE的几个实例:
IE browser1 = new IE();
IE browser2 = new IE();
browser1.GoTo("http://www.google.com");
browser2.GoTo("http://www.yahoo.com");