【问题标题】:How do I close the browser (IE8) using Watin?如何使用 Watin 关闭浏览器 (IE8)?
【发布时间】:2010-06-25 19:17:31
【问题描述】:

我正在使用 Watin 2.0 开发一些自动化 UI 测试。我无法让 Watin 在打开浏览器后关闭它。 Watin.Core.Browser 对象实现了 IDisposible 但 Dispose() 并不能解决问题。我也尝试过使用 Close() 方法。

最近我尝试将 IE 对象实例化包装在 Using 语句中,但没有成功。

我正在使用 IE8 进行测试

using (IE ie = new IE())
{
    ie.GoTo(ApplicationContainer.SummaryUriProvider.URI);
    Link furthurReadingLink = ie.Link(Find.ByText("Further Reading"));
    furthurReadingLink.Click();

    string subTitle = ie.Div("frheader").Element(Find.ByClass("panelsubtitle")).Text;

    Assert.AreEqual("Further Reading", subTitle);
}

【问题讨论】:

  • 我刚刚检查了我的 Watin 测试,我正在做同样的事情,但 IE 肯定会关闭。您使用的是最新版本的 Watin 吗?

标签: c# .net unit-testing watin coded-ui-tests


【解决方案1】:

似乎如果测试抛出一些异常,则永远不会调用 dispose。

【讨论】:

    【解决方案2】:

    您还需要确保您没有打开任何 IE 开发者控制台 (F12) - 这将导致 WatiN 2.1 在调用 .Close() 时挂起。

    HTH

    【讨论】:

    • 虽然这不是原始问题的答案,但您解决了我在处理时 WatiN 挂了好几秒钟的问题。
    【解决方案3】:

    聚会迟到了,但你试过 ForceClose():

    if (ie.NativeBrowser != null)
    {
        ie.ForceClose();
    }
    

    或者为了确保没有其他 IE 实例打开,找到所有打开的实例并 ForceClose() 它们:

    while (IE.InternetExplorersNoWait().Count > 0)
    {
        var ie = IE.InternetExplorersNoWait()[0];
        ie.ForceClose();
    }
    

    你也可以强制 Dispose() 方法:

    if (ie.NativeBrowser != null)
    {
        ie.Dispose();
    }
    

    【讨论】:

      【解决方案4】:

      ie.close() 在 ie 8 中为我工作

      【讨论】:

        【解决方案5】:

        另外,您可能需要检查您的浏览器AutoClose 属性ie.AutoClose

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多