簡體   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