繁体   English   中英

java htmlunit无法加载Javascript

[英]java htmlunit failing to load Javascript

是什么导致此错误,我该如何解决?

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

错误信息

2013年5月25日,上午10:34:12 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl通知警告:遇到过时的内容类型:“文本/ 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] line = [2] lineSource = [null] lineOffset = [0] 2013年5月25日10:34:15 com.gargoylesoftware.html单元。 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日,上午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:message = [自动化服务器无法为'ShockwaveFlash.ShockwaveFlash.7'创建对象。] sourceName = [http:/ /www.google-analytics.com/ga.js] line = [25] lineSource = [null] 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:message = [自动化服务器无法为'ShockwaveFlash.ShockwaveFlash.6'创建对象。] sourceName = [http:/ /www.google-analytics.com/ga.js] line = [25] lineSource = [null] 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:message = [自动化服务器无法为'ShockwaveFlash.ShockwaveFlash'创建对象。] sourceName = [http:// www .google-analytics.com / ga.js] line = [25] lineSource = [null] lineOffset = [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 = 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日,上午com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl通知警告:遇到过时的内容类型:“文本/ javascript”。 2013年5月25日,上午10:34:23 com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl runSingleJob严重:作业运行失败,出现意外的RuntimeException:调用setInnerHTML的异常

这些不是错误,而是警告

它们是由HtmlUnit的JavaScript引擎Mozilla的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

webClient浏览器中将enable Javascript和CSS设置为:

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

您可以通过passint的true或false参数进行ON / OFF

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM