2011-07-04 11 views
2

私はwicketTester.getServetResponse.getDocumentを使ってテスト用の現在のページのテキストを取得しましたが、ajaxリクエストの後はページ全体ではなくajaxレスポンスに設定されています。現在のWicket Pageのソースを入手できますか?

レンダリングされたページ全体を表現する方法はありますか?ブラウザはajax操作後にそれを見ていますか?

+0

これは実際にはhttp://stackoverflow.com/questions/6413022/how-do-i-query-the-text-of-an-element-component-using-wickettesterの複製であることがわかりました。ページはルート要素のテキストです。 –

答えて

2

WicketTesterを使用すると、Ajax呼び出しをシミュレートし、アプリが正しいAjax応答を送信することがわかります。しかし、それは本当にアヤックスを行使しません。

私はWicketTesterからそれを得る方法はないと思います。

実際にレンダリングでAjax/javascriptエフェクトなどのすべての方法でアプリケーションをテストする必要がある場合は、テストのその部分にSeleniumのようなものを使用する必要があります。私は、次のアプローチが動作するはず願っていますWicketの道を考える

+0

私はAjaxを使用しているわけではありませんが、たとえばAjaxを使用してパネルを表示した後にページソースを取得しています。ページの状態がサーバー上で保持されているとすれば、私はページ全体をリフレッシュすると、これが提供されるものに対応すると考えていますか? –

+0

ページ状態はhtmlでレンダリングされたページ全体として保持されません.WicketTesterはajaxレスポンスの後にhtmlの現在の状態を取得する手段を提供しているとは思いません。 –

+0

私はそれが事実であるのを恐れていました。たぶん、私は現在のURLの取得をシミュレートする必要があります。 –

1

  1. #startPage(YourPage.class)
  2. いくつかのAjaxは
  3. #startPage(wicketTester.getLastRenderedPageを())を呼び出す行う
  4. wicketTester.getLastRenderedPageAsString()

考え方は次のとおりです。最初の応答はcです。ページの応答が完了したら、いくつかのモデルを変更するいくつかのAjax呼び出しを行い、最後にレンダリングされたページをインスタンスとして開始します。このようにして、Ajax呼び出しの更新モデルでページをレンダリングします。

+0

ここで、getLastRenderedPageAsStringはgetServletResponse.getDocumentですか?これで、操作が実行され、今変更されたページが更新されます。私はそれに感謝を与えるだろう。 –

1

問題は、Ajax呼び出しに対する応答に任意のJavascriptを配置できることです。しかし、それに対処したくない場合は、オリジナルの全面的なDOMを保存し、Ajaxレスポンスのオブジェクトを繰り返し、完全なDOMのidで見つけて新しいバージョンに置き換えることができます。

これがどれくらい役に立つか分かりませんが、私の推測はそれほど大きくないでしょう。だから私はおそらくセレンと一緒に行くだろう。

+0

私はWicketTesterにかなり満足していますが、コンポーネントを見つけることがどれほど難しいかを除きます。多分私はパスをとると正規表現のマッチに戻ります... –

関連する問題