我的问题是我无法在运行Windows Server 2008和IE8的开发机上可靠地进行简单的WatiN测试。
我已经看过几篇好的帖子,但仍然存在问题。以下是这些帖子:
第一篇文章中的步骤似乎有所帮助(在我的hosts文件中注释掉“::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(曾经做过),但我可能不得不这样做。