如何使用 HtmlUnit 从 JavaScript html 页面获取结果

How can I get the result from the JavaScript html page using HtmlUnit?

本文关键字:获取 结果 html JavaScript 何使用 HtmlUnit      更新时间:2023-09-26

我现在正在使用JavaScript html来做一些测试。我想使用 HtmlUnit 访问页面以获取 JavaScript 网页上的运行结果。而这个页面在这里(对于页面源,你可以右键鼠标查看源):

http://itec.hust.edu.cn/~zhangcw/javascript.html

我想要的是获得有关延迟值"延迟: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 运行结果?

感谢您阅读文本,这对我的英语技能来说很难。

HtmlUnit 有一个对语法错误非常敏感的 JavaScript 引擎。因此,某些东西在普通浏览器(Chrome,IE,FF等)中工作的事实并不意味着它可以在HtmlUnit上运行。

我快速浏览了代码,发现太多语法错误。我什至通过 w3c 验证器运行它并发现了 10 个错误。这里仅举一个例子:

<button type="button style="

你显然在那里错过了一个报价。

还有一些验证器可能无法检测到的错误,例如:

<text id= _delay>

您缺少引号,并且您有一个额外的空间。

最后,代码不起作用的最可能原因是您将其定义为HTML 4.01 Transitional并将 HTML5 属性onerror添加到图像中。此外,您已经向该属性添加了一段 JavaScript,它恰好是未执行的 JavaScript。

修复错误可能会有所帮助。但是,这并不一定意味着它在那之后会起作用。