用htmlunit怎么去获取一个有JS加载的网页信息?

ency008 2013-05-03 12:37:58
用htmlunit怎么去获取一个JS加载完成的网页信息?

我尝试过以下方法:

t.php
<html>
<head>
<title>Test</title>
<script src="include/js/jquery.js"></script>
<script>
$(function(){
$("body").html("<b>123</b>");
});
</script>
</head>
<body>
</body>
</html>


Java的部分代码
WebClient webClient = new WebClient();
URL url=new URL("http://127.0.0.1/");
webClient.setJavaScriptEnabled(true);//执行JS
webClient.setCssEnabled(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.setTimeout(10000);
webClient.setThrowExceptionOnScriptError(false);
HtmlPage page;
try{
page = (HtmlPage)webClient.getPage(url);
System.out.println(page.getWebResponse().getContentAsString());//打印结果
}catch(Exception e){}​

然而返回的结果只是原文档的文本,并没有获取到JS加载后的结果。
...全文
1415 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ypb137154098 2015-04-07
  • 打赏
  • 举报
回复
引用 6 楼 Kyunchen 的回复:
在执行getPage方法之后 你是线程休眠一会(加载js需要时间) 然后试试看asXMl是不是你想要的结果
这个方法可以,学习了 多谢
Kyunchen 2014-02-14
  • 打赏
  • 举报
回复
在执行getPage方法之后 你是线程休眠一会(加载js需要时间) 然后试试看asXMl是不是你想要的结果
lance8799 2013-11-07
  • 打赏
  • 举报
回复
page.atXml(); 不就是你想要的
caiselangren 2013-07-04
  • 打赏
  • 举报
回复
您好 我也遇到这个问题 我想问您现在 这个问题解决了没有 谢谢
SimpleCoderMan 2013-05-10
  • 打赏
  • 举报
回复
像document.write()这些,运行的时候就会执行的
SimpleCoderMan 2013-05-10
  • 打赏
  • 举报
回复
这个。。那个函数是不是要触发才行呢??HTMLUNIT加载了这个段代码怎么知道要不要执行这段JS呢?这个测试代码你自己写的吧。。。。
ency008 2013-05-03
  • 打赏
  • 举报
回复
求好心人帮忙啊

50,712

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧