javascript - 为什么 HtmlUnit 最新版本在无头模式下呈现 d3 版本 6 时会引发 JS 错误?
问题描述
我正在尝试在无头模式下使用 HtmlUnit 呈现包含 d3(d3.v6.3.1.min.js) 的 HTML。我正在使用最新版本的 HtmlUnit 。遇到一些问题。请找到以下详细信息。
我该如何解决?
这是我的代码:
WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED);
//webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setJavaScriptEnabled(true);
File file = new File("Path of the html");
HtmlPage page = webClient.getPage(file.toURI().toURL().toString());
String js = "var data = "+jsonSeries+";\n";
js += "drawChart(data);";
webClient.waitForBackgroundJavaScript(10000);
page.executeJavaScript(js);
svgImage = page.asXml().substring(page.asXml().indexOf("<svg"),page.asXml().indexOf("</svg>")+6);
这是错误日志:
Caused by: net.sourceforge.htmlunit.corejs.javascript.EvaluatorException: syntax error (file: d3.v6.3.1.min.js#2)
at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory$HtmlUnitErrorReporter.error(HtmlUnitContextFactory.java:436) ~[htmlunit-2.54.0.jar:2.54.0]
at net.sourceforge.htmlunit.corejs.javascript.Parser.addError(Parser.java:251) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.reportError(Parser.java:330) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.reportError(Parser.java:321) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.reportError(Parser.java:314) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.primaryExpr(Parser.java:3114) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.memberExpr(Parser.java:2665) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.unaryExpr(Parser.java:2568) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.expExpr(Parser.java:2488) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.mulExpr(Parser.java:2471) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.addExpr(Parser.java:2457) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.shiftExpr(Parser.java:2440) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.relExpr(Parser.java:2418) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.eqExpr(Parser.java:2394) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.bitAndExpr(Parser.java:2385) ~[htmlunit-core-js-2.54.0.jar:?]
at net.sourceforge.htmlunit.corejs.javascript.Parser.bitXorExpr(Parser.java:2376) ~[htmlunit-core-js-2.54.0.jar:?]
解决方案
推荐阅读
- r - R中的多个坐标get_elev_point
- amazon-web-services - 如何删除除最近的 n 个文件夹之外的所有 s3 文件夹?
- python - 在estimatePoseBoard() 上,OpenCV aruco 检测失败
- json - 在 SpringBoot 中发送 Json 和多部分文件
- php - 使用 php 8 在 Mac OS 上安装 xdebug 时出错
- php - PHP复选框验证选中或未选中
- python - 获取 Awkward 数组中不同级别的所有具有通用名称的属性
- azure - Azure DevOps Pipeline 中的命令行脚本出错
- powershell - Powershell:Get-ChildItem 处理批量文件的性能
- c++ - docker 找不到那里的库