如何克服单个 javascript 的错误,同时在 HTMLUnit 中启用其他错误?
How to overcome error from a single javascript while enabling others in HTMLUnit?
我是 HTMLUnit 的新手。我正在尝试从 public 站点获取信息(在下面的代码中给出)。虽然我可以在 Chrome 浏览器或 Chrome Selenium 扩展中打开此 public url 而不会出现错误并继续使用它,但我的 HTMLUnit 程序抛出如下所示的错误源自页面中的特定 Javascript。我的问题是,如何解决此类问题?我不能完全禁用 javascript,因为在这种情况下,包含详细信息的表单部分将不可用。但是,如果我使用命令
EcmaError: lineNumber=[55] column=[0] lineSource=[] name=[TypeError] sourceName=[https://www.marutisuzuki.com/js/server_cookies.js] message=[ TypeError:在对象 [object Object] 中找不到函数 fetchServerCookie。 (https://www.marutisuzuki.com/js/server_cookies.js#55)]
com.gargoylesoftware.htmlunit.ScriptException:TypeError:在对象 [object Object] 中找不到函数 fetchServerCookie。 (https://www.marutisuzuki.com/js/server_cookies.js#55)
String pageAsXml = null;
String pageAsText = null;
try{
WebClient webClient = new WebClient(BrowserVersion.CHROME);
HtmlPage page =
webClient.getPage("https://www.marutisuzuki.com/dealer-showrooms/");
//webClient.getOptions().setJavaScriptEnabled(false);
pageAsXml = page.asXml();
pageAsText = page.asNormalizedText();
System.out.println(pageAsText);
}
catch(Exception e) {
e.printStackTrace();
}
您可以使用
webClient.getOptions.setThrowExceptionOnScriptError(false);
有关更多信息,请查看 https://htmlunit.sourceforge.io/javascript-howto.html。
顺便说一句:这是页面本身的错误,因为您在真实的浏览器中得到了相同的结果。
我是 HTMLUnit 的新手。我正在尝试从 public 站点获取信息(在下面的代码中给出)。虽然我可以在 Chrome 浏览器或 Chrome Selenium 扩展中打开此 public url 而不会出现错误并继续使用它,但我的 HTMLUnit 程序抛出如下所示的错误源自页面中的特定 Javascript。我的问题是,如何解决此类问题?我不能完全禁用 javascript,因为在这种情况下,包含详细信息的表单部分将不可用。但是,如果我使用命令
EcmaError: lineNumber=[55] column=[0] lineSource=[] name=[TypeError] sourceName=[https://www.marutisuzuki.com/js/server_cookies.js] message=[ TypeError:在对象 [object Object] 中找不到函数 fetchServerCookie。 (https://www.marutisuzuki.com/js/server_cookies.js#55)] com.gargoylesoftware.htmlunit.ScriptException:TypeError:在对象 [object Object] 中找不到函数 fetchServerCookie。 (https://www.marutisuzuki.com/js/server_cookies.js#55)
String pageAsXml = null;
String pageAsText = null;
try{
WebClient webClient = new WebClient(BrowserVersion.CHROME);
HtmlPage page =
webClient.getPage("https://www.marutisuzuki.com/dealer-showrooms/");
//webClient.getOptions().setJavaScriptEnabled(false);
pageAsXml = page.asXml();
pageAsText = page.asNormalizedText();
System.out.println(pageAsText);
}
catch(Exception e) {
e.printStackTrace();
}
您可以使用
webClient.getOptions.setThrowExceptionOnScriptError(false);
有关更多信息,请查看 https://htmlunit.sourceforge.io/javascript-howto.html。
顺便说一句:这是页面本身的错误,因为您在真实的浏览器中得到了相同的结果。