4

当我在我们的构建服务器上运行 WatiN 测试时,它们都会抛出这个 InteropServices.COMException:

MyTestClassName.MyTestMethodName:System.Runtime.InteropServices.COMException:从 IClassFactory 创建 CLSID 为 {0002DF01-0000-0000-C000-000000000046} 的 COM 组件实例失败,原因是以下错误:80004005。

无论是通过 TeamCity 运行它们,还是使用 NUnit GUI (2.5) 以管理员身份在服务器上手动运行它们,我都会得到相同的结果。

这是一些示例代码:

[TestFixture]
public class MyTestClassName
{
    private string pageUrl;

    [TestFixtureSetUp]
    public void TestFixtureSetUp()
    {
        pageUrl = ConfigurationManager.AppSettings["SiteURL"] + "/Pages/MyPage.aspx";

        Settings.MakeNewIeInstanceVisible = false;
    }

    [Test]
    public void MyTestMethodName()
    {
        using (var ie = new IE(pageUrl))
        {
            ie.SelectList(new Regex(@"^*DropDownList1*$")).Option("TheOption").Select();

            ie.SelectList(new Regex(@"^*DropDownList2*$")).Option("AnOption").Select();

            ie.SelectList(new Regex(@"^*DropDownList3*$")).Option("OtherOption").Select();

        }
    }
}

有什么想法吗?

/乔金

4

6 回答 6

6

尝试以管理员身份运行 Visual Studio。

于 2009-11-09T16:34:32.413 回答
5

我也遇到了同样的问题,但对我来说更奇怪。

我有一个服务器仅用于“UI 测试”并且对于许多应用程序 de WatiN 测试运行没有任何问题。

此错误仅发生在一个应用程序中,并且仅在 CruiseControl(使用 nant)中发生,但在使用 NUnitGUI 运行测试时不会发生...

今天早上我终于找到了一个解决方案:我替换了我new IE();new IE(true) WatiN 发行说明的所有调用,并且不再收到错误消息。

于 2009-09-17T07:52:04.027 回答
3

另一个解决方法是“在 IE 中启用保护模式”,如此处所述

于 2014-06-07T15:44:30.637 回答
2

另一条评论说:

尝试以管理员身份运行 Visual Studio

它实际上是 NUnit 需要以管理员身份运行(至少在 Windows 7 中),但想法是正确的。

于 2011-02-09T22:39:45.910 回答
2

每次 WatiN 调用 IE.Quit 时,IE 都会停止响应,然后尝试恢复。以管理员身份运行为我解决了这个问题。

于 2010-11-04T18:07:51.950 回答
0

我认为选择列表尚未完全加载并准备好,这是此问题中描述的同一问题的另一个症状:

访问被拒绝错误(Visual Studio 和 WatiN)

于 2009-06-09T03:39:07.020 回答