我的问题是我无法在运行 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(去过那里,做过那个),但我可能不得不这样做。