0

我一直在编写 WatiN 测试,我想开始为我的所有测试使用相同的浏览器实例,但如果需要,我仍然希望能够单独运行一个测试。因此,我想做一个条件语句,基本上说,如果那里已经有一个浏览器实例指向正确的 URl,那么使用它,如果没有创建一个新实例。问题是我似乎无法让 Browser.Exists 正常工作。理想情况下,我想要这样的东西:

if(Browser.Exists(Find.ByURL("www.mysite.com")) == true)
{
         var Window = IE.AttachTo<IE>(Find.ByUrl("www.mysite.com"));
}
else
{
         IE Window = new IE("http://svrp00008cde/cas/default.aspx");
}

但是,我无法弄清楚正确的语法。

4

1 回答 1

1

经过大约一个小时的折腾,我终于找到了解决方案。那里有一些答案,包括来自 WatiN 制造商本人的一个答案,似乎让我走错了路。我相信这可能是因为实施已经改变并且答案从未更新。不管怎样,我就是这样做的:

public static IE CheckForBrowser()
        {
            IE Window;

            if (Browser.Exists<IE>(Find.ByTitle("My Site!")) == true)
            {
                Window = IE.AttachTo<IE>(Find.ByUrl("http://www.mysite.com"));
            }
            else
            {
                Window = new IE("http://www.mysite.com");
            }

            return Window;
        }

每次初始化 IE 的新实例时,我都会创建一个调用方法。此方法查看是否以我提供的标题打开了一个窗口,如果它是使用该标题而不是打开一个新的浏览器实例。否则,它会打开一个实例并从那里运行我的测试。

于 2012-04-17T20:22:06.250 回答