2009-11-07 33 views
1

我正嘗試將一些WatiN UI測試應用到我的新ASP.Net MVC應用程序,通過MbUnit運行WatiN測試,但遇到一些困難。通過MbUnit使用WatiN來測試ASP .Net MVC web應用程序

如果我按照this page的說明(正好),那麼Google主頁會加載,插入文本,搜索完成並且測試通過。 (這裏沒問題)。

然而,當我只是該行的網址...

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

改變通過IIS(Win7上)託管在我的電腦上的網站(例如到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

測試locahost上的網站應該沒有顯着差異。

兩個可能的原因:

  1. 如果您的網頁包含任何顯著AJAX那麼它有可能是網頁從未出現滿載所以華廷只是一直等待。

  2. 我已經修復了WatiN中的一個或兩個錯誤,然後與檢測到頁面已完全加載有關。您可以嘗試抓取WatiN中繼源並構建最新代碼的新副本。

如果這些都沒有幫助,WatiN也有像「點擊」這樣的幾個動作的「NoWait」變體。您還可以重寫WatiN通過註冊WaitForComplete處理程序來等待頁面完成的含義。

+0

我完全同意;我不明白爲什麼這個網站應該有什麼不同,尤其是因爲它是一個已發佈(輸出)網站!但我正在使用最新版本的WatiN,因爲我只是在昨天才下載它。 – 2009-11-08 20:33:33

+0

但是,不,沒有AJAX發生 - 這是一個MVC Web應用程序的首頁,沒有什麼比頂部拖入的CSS頁面更令人興奮。 – 2009-11-08 21:03:13

+0

此外,我剛剛檢查了我下載的文件 - 它是來自sourceforge網站的WatiN-2.0.10.928-net-2.0.zip。是否有更新的代碼庫? – 2009-11-08 21:05:45

2

我曾經遇到過這種情況,當時我沒有加載資源的引用。

  • 是否有對JS,CSS或圖像文件不存在的引用?
  • 如果您使用Fiddler查看HTTP流量,您是否看到任何連接超時?
0

確保程序以管理員身份運行。在Win7上,它將加載頁面,但Watin無法訪問DOM,除非Visual Studio或Gallio Icarus以管理員權限啓動。

+0

你能否給出一些證據來支持你的回答? – Odys 2012-05-31 11:37:56

+0

只是我的經驗。另外http://codeblog.theg2.net/2009/12/watin-20-and-gallio-31-in-x64.html和http://stackoverflow.com/questions/1014815/how-do-you-get -watin到工作-ON-Windows的服務器-2008-與-IE8 – 2012-05-31 14:42:27

相關問題