在 htmlunit 中沉默 Javascript 堆栈跟踪

Silence Javascript stack traces in htmlunit

我已将我的程序配置为继续过去 JavaScript 个异常:

    WebClient webClient = new WebClient(BrowserVersion.FIREFOX_ESR);
    webClient.getOptions().setThrowExceptionOnScriptError(false);      // #1
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    webClient.getOptions().setPrintContentOnFailingStatusCode(false);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());

结果是程序继续 运行,即使遇到 JavaScript 错误,正如基于上面的设置 #1 所预期的那样。

问题是错误仍在被记录。例如:

com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "jQuery" is not defined.

然后是超过 一百行我不关心的堆栈跟踪

我想 WebClientOptions 中可能有 public void setPrintContentOnScriptError(Boolean enabled) 方法,但我没有找到。

如何防止 JavaScript 堆栈跟踪在 运行ning htmlunit 时使输出混乱?

您必须自定义日志配置。 请看一下 https://htmlunit.sourceforge.io/logging.html.