我使用HtmlUnit進行分析工作,並且發現內存被WebClient拿着每個WebWindow的歷史記錄浪費了。我根本不使用歷史記錄,我想禁用它的管理,或者至少用1或2來限制它的大小。這可能嗎?如何限制HtmlUnit的歷史記錄大小?
4
A
回答
-1
HtmlUnit中沒有禁止我知道的歷史記錄的選項。 History類有一個getHistory()方法,但沒有setHistory()或disableHistory()。我所做的,當然並不理想,就是發佈網頁並重新實現它。只要你不釋放你的CookieManager,你應該可以在cookie前面確定。基本上,一旦我完成並登錄,在將當前頁面存儲爲臨時字符串之後,我將窗口取消,然後將其重新實例化到我離開的位置。我在給定的點上這樣做來清除歷史。
String tempPage = currentHtmlPage.getUrl().toString(); //HtmlPage class
window = null;
window = new WebWindow();
currentHtmlPage = new WebWindow.getWebClient().getPage(tempPage); //HtmlPage class
這使得窗口可以從中斷的地方取出。 它的醜陋,但如果你絕望,它可能會奏效。
+0
如果頁面被javascript動態更改,該怎麼辦?在通過URL重新加載內容時,所有這些內容更改都將丟失。 – MrSmith42 2013-02-19 16:24:02
2
下面的代碼將設置ignoreNewPages_
爲true:
try {
final WebClient webClient = getWebClient();
final List<WebWindow> webWindows = webClient.getWebWindows();
History window = webWindows.get(0).getHistory();
Field f = window.getClass().getDeclaredField("ignoreNewPages_"); //NoSuchFieldException
f.setAccessible(true);
((ThreadLocal<Boolean>) f.get(window)).set(true);
} catch (Exception e) {
e.printStackTrace();
throw new AssertionError("Can't disable history");
}
訪問器:
private static WebTester getTester() {
return JWebUnit.getTester();
}
private HtmlUnitTestingEngineImpl getHtmlUnitEngine() {
return (HtmlUnitTestingEngineImpl) getTester().getTestingEngine();
}
private WebClient getWebClient() {
return getHtmlUnitEngine().getWebClient();
}
相關問題
- 1. Google Fit API歷史記錄限制?
- 2. 如何增加PHPStorm剪貼板的歷史記錄大小?
- 3. GWT歷史記錄機制
- 4. GWT歷史記錄:歷史記號
- 5. 什麼是Google BigQuery的最大作業歷史記錄大小
- 6. 什麼是MATLAB分析器的最大歷史記錄大小?
- 7. 製作歷史記錄如console.log
- 8. 錄製網址導航歷史記錄
- 9. 如何在SQL Server中的歷史記錄表中存儲歷史記錄
- 10. 限制聊天記錄的大小
- 11. 用於跟蹤文件大小歷史記錄的SVN插件
- 12. 如何使用歷史記錄類來處理瀏覽器歷史記錄
- 13. LDAP登錄歷史記錄
- 14. 貝寶Sandbox歷史記錄重定向到REAL歷史記錄
- 15. Nhibernate的歷史記錄
- 16. 帶歷史記錄的EditText
- 17. OnTouch歷史記錄大小始終爲0
- 18. 歷史記錄強制刷新
- 19. 獲取控制檯歷史記錄
- 20. Spyder IDE控制檯歷史記錄
- 21. 複製監視詳細歷史記錄
- 22. 如何從mercurial的歷史記錄中刪除大文件?
- 23. 如何實現數據歷史記錄?
- 24. 如何用Nightwatch瀏覽歷史記錄?
- 25. 如何清除堆棧歷史記錄?
- 26. 如何獲取密碼歷史記錄?
- 27. Html.TextBoxFor - 如何關閉歷史記錄
- 28. 如何保存IEx歷史記錄?
- 29. 如何實現歷史記錄功能?
- 30. 如何分析歷史記錄數據?
確定Web客戶端是抱着 「歷史」?我不知道如何訪問它,如果它在那裏。也許你正在持有對WebPage的前一個實例的引用? – 2011-06-14 21:52:38