1

新しい ASP .Net MVC アプリケーションにいくつかの WatiN UI テストを適用しようとしています。MbUnit を介して WatiN テストを実行していますが、いくつか問題があります。

このページの指示に (正確に) 従うと、Google ホームページが読み込まれ、テキストが挿入され、検索が行われ、テストに合格します。(ここでは問題ありません)。

ただ、単純に回線のURLを変えると…

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

IIS (Win7) を介して PC でホストされている Web サイト (例: 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

他の誰かがこれを取得しますか、それとも私だけですか?

4

3 に答える 3

3

locahost で Web サイトをテストしても、大きな違いはないはずです。

2 つの原因が考えられます。

  1. Web ページに重要な AJAX が含まれている場合、ページが完全にロードされていないように見える可能性があるため、WatiN は待機し続けます。

  2. ページが完全に読み込まれたことの検出に関連する WatiN のバグを 1 つまたは 2 つ修正しました。WatiN トランクのソースを取得して、最新のコードの新しいコピーを作成してみてください。

どれも役に立たない場合、WatiN にはクリックなどのいくつかのアクションの "NoWait" バリアントもあります。WaitForComplete ハンドラーを登録することで、ページが完了するまで待機することの WatiN に対する意味をオーバーライドすることもできます。

于 2009-11-08T07:29:53.110 に答える
2

ロードされなかったリソースへの参照があったときに、これが発生しました。

  • 存在しない JS、CSS、または画像ファイルへの参照がありますか?
  • Fiddlerで HTTP トラフィックを確認すると、接続がタイムアウトしていませんか?
于 2009-11-08T21:09:29.230 に答える
0

プログラムが管理者として実行されていることを確認してください。Win7 ではページが読み込まれますが、Visual Studio または Gallio Icarus が管理者権限で起動されない限り、Watin は DOM にアクセスできません。

于 2010-01-27T23:17:56.423 に答える