【问题标题】:java htmlunit failing to load Javascriptjava htmlunit无法加载Javascript
【发布时间】:2013-05-25 23:12:45
【问题描述】:

是什么导致了这个错误,我该如何解决?

WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://stackoverflow.com");

错误信息

2013 年 5 月 25 日上午 10:34:12 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl 通知 警告:遇到过时的内容类型:'text/javascript'。 2013 年 5 月 25 日上午 10:34:13 com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError 严重:runtimeError: message=[完成此操作所需的数据尚不可用。] sourceName=[http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js] 行=[2] lineSource=[null] lineOffset=[0] 2013 年 5 月 25 日上午 10:34:15 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl 通知 警告:遇到过时的内容类型:'text/javascript'。 2013 年 5 月 25 日上午 10:34:16 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:3230] 样式规则错误。 (无效标记“!”。期待以下之一:, , , “继承”, , , , , , , , , , , , , , , , , , , , , , , , , , "}", "; "、"/"、"-"。) 2013 年 5 月 25 日上午 10:34:16 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 警告 警告:CSS 警告:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:3230] 忽略此规则中的以下声明。 2013 年 5 月 25 日上午 10:34:16 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:6341] 样式规则错误。 (无效标记“!”。期待以下之一:, , , “继承”, , , , , , , , , , , , , , , , , , , , , , , , , , "}", "; "、"/"、"-"。) 2013 年 5 月 25 日上午 10:34:16 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 警告 警告:CSS 警告:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:6341] 忽略此规则中的以下声明。 2013 年 5 月 25 日上午 10:34:16 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:14777] 样式规则错误。 (无效标记“!”。期待以下之一:, , , “继承”, , , , , , , , , , , , , , , , , , , , , , , , , , "}", "; "、"/"、"-"。) 2013 年 5 月 25 日上午 10:34:16 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 警告 警告:CSS 警告:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:14777] 忽略此规则中的以下声明。 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:31657] 样式规则错误。 (无效标记“!”。期待以下之一:, , , “继承”, , , , , , , , , , , , , , , , , , , , , , , , , , "}", "; "、"/"、"-"。) 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 警告 警告:CSS 警告:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:31657] 忽略此规则中的以下声明。 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:73253] 样式规则错误。 (无效标记“:”。期待以下之一: , , , “继承”, , , , , , , , , , , , , , , , , , , , , , , , , , "}", "; "、"/"、"-"。) 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 警告 警告:CSS 警告:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:73253] 忽略此规则中的以下声明。 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:112886] 表达式错误。 (无效的标记“#ffffff”。期待以下之一:、、、、、、、、、、“-”、“=”、“)”。) 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误 警告:CSS 错误:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:112928] 样式规则错误。 (无效的标记“背景”。期待以下之一:,“}”,“;”。) 2013 年 5 月 25 日上午 10:34:17 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 警告 警告:CSS 警告:'cdn.sstatic.net/stackoverflow/all.css?v=1748204ca390' [1:112928] 忽略此规则中的以下声明。 2013 年 5 月 25 日上午 10:34:19 com.gargoylesoftware.htmlunit.javascript.host.ActiveXObject jsConstructor 警告:自动化服务器无法为“ShockwaveFlash.ShockwaveFlash.7”创建对象。 2013 年 5 月 25 日上午 10:34:19 com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError 严重:runtimeError:消息=[自动化服务器无法为“ShockwaveFlash.ShockwaveFlash.7”创建对象。] sourceName=[http://www.google-analytics.com/ga.js] line=[25] lineSource= [空] lineOffset=[0] 2013 年 5 月 25 日上午 10:34:19 com.gargoylesoftware.htmlunit.javascript.host.ActiveXObject jsConstructor 警告:自动化服务器无法为“ShockwaveFlash.ShockwaveFlash.6”创建对象。 2013 年 5 月 25 日上午 10:34:19 com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError 严重:runtimeError:消息=[自动化服务器无法为“ShockwaveFlash.ShockwaveFlash.6”创建对象。] sourceName=[http://www.google-analytics.com/ga.js] line=[25] lineSource= [空] lineOffset=[0] 2013 年 5 月 25 日上午 10:34:19 com.gargoylesoftware.htmlunit.javascript.host.ActiveXObject jsConstructor 警告:自动化服务器无法为“ShockwaveFlash.ShockwaveFlash”创建对象。 2013 年 5 月 25 日上午 10:34:19 com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError 严重:runtimeError:消息=[自动化服务器无法为“ShockwaveFlash.ShockwaveFlash”创建对象。] sourceName=[http://www.google-analytics.com/ga.js] line=[25] lineSource=[null ] 线偏移=[0] 2013 年 5 月 25 日上午 10:34:20 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl 通知 警告:遇到过时的内容类型:'application/x-javascript'。 2013 年 5 月 25 日上午 10:34:21 org.apache.http.client.protocol.ResponseProcessCookies processCookies 警告:无效的 cookie 标头:“Set-Cookie:azk-views=;Max-Age=31536000000;Path=/;Expires=Sun,2014 年 5 月 25 日 17:34:42 GMT”。无效的最大年龄属性:31536000000 2013 年 5 月 25 日上午 10:34:21 org.apache.http.client.protocol.ResponseProcessCookies processCookies 警告:无效的 cookie 标头:“Set-Cookie:azk-events=;Max-Age=2592000000;Path=/;Expires=Mon,2013 年 6 月 24 日 17:34:42 GMT”。无效的最大年龄属性:2592000000 2013 年 5 月 25 日上午 10:34:21 org.apache.http.client.protocol.ResponseProcessCookies processCookies 警告:无效的 cookie 标头:“Set-Cookie:azk-voting=;Max-Age=2592000000;Path=/;Expires=Mon,2013 年 6 月 24 日 17:34:42 GMT”。无效的最大年龄属性:2592000000 2013 年 5 月 25 日上午 10:34:21 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl 通知 警告:遇到过时的内容类型:'text/javascript'。 2013 年 5 月 25 日上午 10:34:23 com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl runSingleJob 严重:作业运行失败,出现意外的 RuntimeException:调用 setInnerHTML 的异常

【问题讨论】:

    标签: java htmlunit


    【解决方案1】:

    这些不是错误,它们是警告

    它们是由 HtmlUnit 的 JavaScript 引擎Mozilla’s Rhino 无法正确解释某些 JavaScript 代码引起的。 (它不如其他一些流行的 JS 引擎“好”。)

    您可以关闭这些警告,方法如下:

    public static void main(String[] args) throws Exception {
        // turn off htmlunit warnings
        java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.OFF);
        java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF);
    
        WebClient webClient = new WebClient();
        HtmlPage page = webClient.getPage("http://stackoverflow.com");
        System.out.println(page.getTitleText());
    }
    

    输出:

    Stack Overflow
    

    【讨论】:

      【解决方案2】:

      webClient浏览器中设置启用Javascript和CSS为:

      webClient.getOptions().setJavaScriptEnabled(false);
      webClient.getOptions().setCssEnabled(false);
      

      你可以通过传入真或假参数ON / OFF

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-11
        相关资源
        最近更新 更多