【问题标题】:Run WatiN with BackGroundWorker to Open IE Browser使用 BackGroundWorker 运行 WatiN 以打开 IE 浏览器
【发布时间】:2014-10-11 22:10:11
【问题描述】:

我只是在没有任何其他测试框架(如 NUnit 或其他)的情况下使用 WatIn。

当我尝试运行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
        }
    }

【问题讨论】:

    标签: c# winforms testing watin


    【解决方案1】:

    您不能使用 Watin 启动多个线程。但您可以触发多个 IE 实例:

    IE browser1 = new IE();
    IE browser2 = new IE();
    
    browser1.GoTo("http://www.google.com");
    browser2.GoTo("http://www.yahoo.com");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2012-06-25
      • 2019-09-15
      • 2015-09-08
      • 2013-11-07
      • 2014-01-20
      • 1970-01-01
      相关资源
      最近更新 更多