我现在正在使用JavaScript html进行一些测试。我想使用HtmlUnit访问页面以获取JavaScript网页上的运行结果。 此页面在此处(对于页面源,您可以右键单击鼠标以查看源代码):
http://itec.hust.edu.cn/~zhangcw/javascript.html
我想要的是得到关于延迟值“delay:xxx ms”的运行结果 该页面上的JavaScript。但是,当我使用HtmlUnit捕获html时,它总是捕获该页面的原始源并且不包含运行结果。我的代码是这样的:
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://itec.hust.edu.cn/~zhangcw/javascript.html");
String source = page.asXml();
System.out.println(Source);
源只包含JavaScript源代码和html内容,而不是页面上JavaScript的执行结果。我应该用HtmlUnit做什么?
我的问题是如何使用HtmlUnit在页面上获取JavaScript运行结果?
感谢阅读文本,对我的英语技能很难。
答案 0 :(得分:1)
HtmlUnit有一个对语法错误非常敏感的JavaScript引擎。因此,在普通浏览器(Chrome,IE,FF等)中工作的事实并不意味着它可以在HtmlUnit上运行。
我快速查看代码并检测到太多语法错误。我甚至通过w3c validator运行了这个,发现了10个错误。这只是一个例子:
<button type="button style="
你显然在那里错过了一句话。
还有一些验证器可能无法检测到的错误,例如:
<text id= _delay>
您错过了引号,并且还有一个额外的空间。
最后,代码无效的最可能原因是您将其定义为HTML 4.01 Transitional
,并将HTML5属性onerror
添加到图像中。此外,您已经为该属性添加了一段JavaScript,它恰好是未执行的JavaScript。
修复错误可能会有所帮助。但是,它并不一定意味着它会在那之后起作用。