21

我的问题是我无法在运行 Windows Server 2008 和 IE8 的开发机器上进行简单的 WatiN 测试以可靠地工作。

我已经看到了一些关于此的好帖子,但仍然遇到问题。以下是帖子:

第一篇文章中的步骤似乎有所帮助(在我的主机文件中注释掉“::1”,将我的站点放在受信任的站点中,并确保我的 app.config 具有“STA”并设置为“如果较新”,但它们并没有可靠地帮助。我尝试了第二个示例中的代码,希望它会有所帮助,但它没有。我使用的是 WatiN 2.0 beta 1。

我的 NUnit 代码如下所示:

protected Browser Browser { get; set; }

[TestFixtureSetUp]
public void SetupPriorToTestsInThisFixture()
{
    Browser = new IE();
    Browser.GoTo(Constants.SiteCollectionUrl);
}

[TestFixtureTearDown]
public void TearDownAfterTestsInThisFixture()
{
    if (Browser != null)
    {
        Browser.Dispose();
    }
}

[Test]
public void WaterThroughThePipes()
{
    Link link = Browser.Link(Find.ByText("Calendar"));
    bool exists = link.Exists;
    Assert.That(exists, Is.True, "Could not find 'Calendar' link.");
}

我所看到的是有时(尽管很少)我的测试通过了。有时断言失败(exists = false),有时我在尝试打开浏览器时超时,有时我在尝试访问 link.Exists 时遇到错误。

访问 link.Exists 的错误如下所示:

MyFixture.WaterThroughThePipes:System.Runtime.InteropServices.COMException:接口未知。(来自 HRESULT 的异常:0x800706B5)

我现在似乎无法重现超时错误,所以我目前无法提供(尽管这曾经一直发生)。

在调试模式下运行与不在调试模式下运行时,我倾向于看到不同的结果。

对于它的价值,Firefox 3.0.6 从来没有为我工作过。我愿意,但无论如何都需要 IE 才能工作。这是我在使用 Firefox 时遇到的错误。

MyFixture (TestFixtureSetUp): WatiN.Core.Native.Mozilla.FireFoxException : 无法连接到 jssh 服务器,请确保您已正确安装 jssh.xpi 插件 ----> System.Net.Sockets.SocketException : 无法连接因为目标机器主动拒绝它 127.0.0.1:9997

有任何想法吗?我真的不想回到 Selenium(去过那里,做过那个),但我可能不得不这样做。

4

5 回答 5

29

以管理员身份运行 Visual Studio

于 2009-10-15T19:14:50.503 回答
21

通过将我的 Internet 安全设置调整为“启用保护模式”,即使对于本地 Intranet 站点,我也能够让这个 COM 错误消失 - 并使我的测试正常运行。这个单一的复选框使一切变得不同。(而且我不必以管理员身份运行 Visual Studio。)

请参阅此博客文章以解决此问题,而无需以管理员身份运行 Visual Studio。

简要地:

在 Internet Explorer 中,打开工具 -> Internet 选项 -> 安全 -> 本地 Intranet,然后选中“启用保护模式”框。

我在 Windows 7 上运行 IE 8 和 Visual Studio 2010。

于 2010-12-15T21:16:30.103 回答
1

IE8 definatley 与 WatiN 合作,自 IE8 首次公开发布以来一直如此。

如果某些东西在调试中工作但在运行时没有工作,通常表明存在时间或 Server 2008 安全锁定问题。

您应该将失败的行放在 try catch 中,然后如果有异常暂停半秒,然后重试。

还要确保您已关闭所有额外的服务器安全锁定,并以管理员身份运行 nUnit 以避免 UAC 妨碍。

于 2009-06-23T03:42:02.903 回答
0

关于您在 Firefox 上看到的错误...这可以通过安装FireWatir FF 插件来克服。(或者至少在 3.5.3 上对我有用)

但正如已经提到的,IE 是受支持的,并且在 WatiN 上下文中,使用 FireFox 并不是什么神奇的解决方案。

于 2009-10-13T15:57:16.133 回答
0

避免以管理员身份运行 Visual Studio 或 NUnit 的另一种选择是在计算机级别禁用 UAC,如果您以最低权限运行(应该是),这不应该是安全问题。

于 2010-06-29T10:01:57.353 回答