代码之家  ›  专栏  ›  技术社区  ›  Brett Rigby

通过MbUnit使用WatiN测试ASP.NETMVCWeb应用程序

  •  1
  • Brett Rigby  · 技术社区  · 15 年前

    如果我完全按照上面的说明去做 this page

    var ie = new IE(new Uri("http://www.google.co.uk"));
    

    http://localhost/myapp/ )我的应用程序的主页加载正常,但测试运行程序似乎仍在等待页面已加载的确认,然后测试由于超时而失败。

    以下是IDE中失败的响应。。。

    *** Failures ***
    Exception
    WatiN.Core.Exceptions.TimeoutException: Timeout while Internet Explorer state not complete
       at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.ThrowTimeOutException(Exception lastException, String message)
       at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.HandleTimeOut()
       at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.Try[T](DoFunc`1 func)
       at WatiN.Core.WaitForCompleteBase.WaitUntil(DoFunc`1 waitWhile, BuildTimeOutExceptionMessage exceptionMessage)
       at WatiN.Core.Native.InternetExplorer.WaitForComplete.WaitWhileIEReadyStateNotComplete(IWebBrowser2 ie)
       at WatiN.Core.Native.InternetExplorer.IEWaitForComplete.DoWait()
       at WatiN.Core.DomContainer.WaitForComplete(IWait waitForComplete)
       at WatiN.Core.IE.WaitForComplete(Int32 waitForCompleteTimeOut)
       at WatiN.Core.DomContainer.WaitForComplete()
       at WatiN.Core.Browser.GoTo(Uri url)
       at WatiN.Core.IE.FinishInitialization(Uri uri)
       at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess)
       at WatiN.Core.IE..ctor(Uri uri)
       at FppRendersUI.Test.Program.DoSomething() in C:\Dev\MyCode.Test\Program.cs:line 18
    

    还有谁知道这个,还是只有我?

    3 回复  |  直到 12 年前
        1
  •  3
  •   Jeff Brown    15 年前

    在locahost上测试网站应该没有显著差异。

    两个可能的原因:

    1. 如果您的网页包含任何重要的AJAX,那么页面可能从未完全加载,因此WatiN会一直等待。

    如果这些都没有帮助的话,WatiN也有一些“NoWait”变体,比如点击。您还可以通过注册WaitForComplete处理程序来覆盖等待页面完成对WatiN的意义。

        2
  •  2
  •   orip    15 年前

    当我引用了一个未加载的资源时,我就遇到了这种情况。

    • 是否有对不存在的JS、CSS或图像文件的引用?
    • 如果您使用 Fiddler 你看到任何连接超时了吗?
        3
  •  0
  •   Greg Bray    14 年前

    确保程序以管理员身份运行。在Win7上,它将加载页面,但Watin无法访问DOM,除非Visual Studio或Gallio Icarus以管理员权限启动。