我正在尝试在页面中执行javascript代码后获取网页的内容。我们假设我有以下页面:
<html>
<body>
test:
<div id="inner"></div>
<script type="text/javascript">
document.getElementById('inner').innerHTML = "Hello World!";
</script>
</body>
</html>
我要提取的是执行javascript后的页面,所以渲染的html:
<html>
<body>
test:
<div id="inner">Hello World</div>
</script>
</body>
</html>
是否可以在htmlUnit中使用?
答案 0 :(得分:3)
我不确定您使用该代码时遇到了什么问题,但它对我来说非常适合。
我创建了一个包含该内容的文件,我从获取页面内容得到的结果是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<html>
<head/>
<body>
test:
<div id="inner">
Hello World!
</div>
<script type="text/javascript">
//<![CDATA[
document.getElementById('inner').innerHTML = "Hello World!";
//]]>
</script>
</body>
</html>
这是您需要的所有代码:
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("the_url");
System.out.println(page.asXml());
您可能还会发现此问题很有用:
答案 1 :(得分:1)
我希望我能正确理解你的问题。 htmlUnit
支持执行JavaScript代码。查看this tutorial它可能会帮助您开始使用。
此外,如果您在专业环境中进行应用程序测试,特别是如果它在更大范围内,那么我建议您使用比htmlUnit
更先进的东西,例如{{3 }}