我使用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. 如何增加PHPStorm剪贴板的历史记录大小?
- 2. GWT历史记录:历史记号
- 3. 制作历史记录如console.log
- 4. 如何在SQL Server中的历史记录表中存储历史记录
- 5. 限制聊天记录的大小
- 6. 用于跟踪文件大小历史记录的SVN插件
- 7. LDAP登录历史记录
- 8. 带历史记录的EditText
- 9. Nhibernate的历史记录
- 10. OnTouch历史记录大小始终为0
- 11. 复制监视详细历史记录
- 12. Spyder IDE控制台历史记录
- 13. 如何从mercurial的历史记录中删除大文件?
- 14. 如何禁用历史记录?
- 15. 如何清除堆栈历史记录?
- 16. 如何分析历史记录数据?
- 17. Html.TextBoxFor - 如何关闭历史记录
- 18. 如何获取密码历史记录?
- 19. 如何保存IEx历史记录?
- 20. 如何用Nightwatch浏览历史记录?
- 21. 活动记录审计历史记录
- 22. iPhone通话记录/历史记录
- 23. 如何清除Android中的通话记录历史记录?
- 24. 如何访问iPhone的通话记录/历史记录
- 25. 如何在MySQL中保留记录更新的历史记录?
- 26. 如何绘制git repo的代码行历史记录?
- 27. 如何让git不能跟踪大文件历史记录?
- 28. Eclipse运行历史记录
- 29. Google chrome历史记录sqlite
- 30. Eclipse RCP - SelectionService - 历史记录?
确定Web客户端是抱着 “历史”?我不知道如何访问它,如果它在那里。也许你正在持有对WebPage的前一个实例的引用? – 2011-06-14 21:52:38