我一直在使用wicketTester.getServetResponse.getDocument
來獲取當前頁面的文本進行測試,結果發現在ajax請求後它被設置爲ajax響應,而不是整個頁面。我可以獲得當前Wicket頁面的來源嗎?
有什麼辦法可以得到整個呈現頁面的表示,因爲瀏覽器會在ajax操作之後看到它?
我一直在使用wicketTester.getServetResponse.getDocument
來獲取當前頁面的文本進行測試,結果發現在ajax請求後它被設置爲ajax響應,而不是整個頁面。我可以獲得當前Wicket頁面的來源嗎?
有什麼辦法可以得到整個呈現頁面的表示,因爲瀏覽器會在ajax操作之後看到它?
使用WicketTester,您可以模擬Ajax調用並查看您的應用程序發送正確的Ajax響應。但它並沒有真正的運用ajax。
所以我不認爲有一種方法可以從WicketTester中獲得。
如果您確實需要一直測試應用程序到UI,包括渲染上的Ajax/javascript效果,那麼您可能需要在測試的這一部分使用類似Selenium的東西。
它不是在執行我之後的Ajax,而是在獲取頁面源之後,例如,我用Ajax顯示了一個面板。鑑於頁面狀態是在服務器上舉行,我認爲這相當於如果我刷新整個頁面將會提供什麼? –
頁面狀態不會保存爲html中的整個呈現頁面,我不認爲WicketTester提供了在ajax響應之後獲取html當前狀態的方法。 –
我很害怕這種情況。也許我將不得不模擬獲取當前URL。 –
思考的檢票方式,我希望下面的方法應該工作:
這個想法是:你啓動一個頁面進行測試,第一個響應是c完成頁面響應,然後執行一些Ajax調用,這些調用會更改某些模型,然後以實例的形式啓動最後一個呈現的頁面 - 這樣它將使用來自Ajax調用的更新模型來呈現頁面。
其中getLastRenderedPageAsString是getServletResponse.getDocument?所以這是執行操作,然後刷新現在修改的頁面。我會給它一個去感謝。 –
問題在於,您可以將任何Javascript放入對Ajax調用的響應中。但是如果你不想處理這個問題,你可以保存原始的整頁DOM,迭代Ajax響應中的對象,在完整DOM中通過id找到它們,並用新版本替換它們。
這將是多麼有用,我不知道,我的猜測會不會很。所以我可能會和Selenium一起去。
除了找到組件的難度之外,我對WicketTester一直很滿意。也許我會回到正軌道上的正則表達式比賽... –
我現在看到,這真的是一個重複http://stackoverflow.com/questions/6413022/how-do-i-query-the-text-of-an-element-component-using-wickettester - 其中頁面是根元素的文本。 –