【发布时间】:2019-07-19 07:40:11
【问题描述】:
我在使用 HtmlUnit 时遇到问题。
我认为该网站包含一些错误的 javascript 代码,这对于 Firefox 或 Chrome 而言不是问题,但对于 HtmlUnit 而言。
当我从下面执行 Java 代码时,它会抛出我在下面也提到的异常。
我已经试过了:
client.getOptions().setThrowExceptionOnFailingStatusCode(false); client.getOptions().setThrowExceptionOnScriptError(false);
它工作得很好,我没有再遇到异常,但我不能再执行任何 javascript 代码了。
page.executeJavaScript(javaScriptCode)
从现在开始,每个 javascript 请求都会产生一个无用的值,或者甚至没有对页面进行任何更改。
我只想在没有异常的情况下执行我的 Java 代码。
我希望有人能够帮助我。
我的 Java 代码
WebClient client = new WebClient();
client.getOptions().setJavaScriptEnabled(true);
HtmlPage page = client.getPage("xxx");
来自网页的部分 javascript 代码
function checkDeptLogin() {
if (logintextboxvalidate == "_Dept_login")
{
visibleaccount();
}
document.getElementById('leftcolmnmain').style.display = 'block'; //Line 168
document.getElementById('stapleid').style.display = 'none';
if (document.getElementById('postlstinfoid') != null)
{
document.getElementById('postlstinfoid').style.display = 'none';
}
}
document.write('<div id = "leftcolmnmain" style="display:none">'); //Line 1778
EcmaError: lineNumber=[168] column=[0] lineSource=[null] name=[TypeError] sourceName=[xxx/startwlm/Start_Wlm.htm 中的脚本来自 (23, 54) 到 (223, 10)] message=[TypeError: 无法读取属性 来自 null 的“样式”(来自 (23, 54) 的 xxx/startwlm/Start_Wlm.htm 中的脚本 到 (223, 10)#168)] com.gargoylesoftware.htmlunit.ScriptException: TypeError:无法从 null 读取属性“样式”(脚本在 xxx/startwlm/Start_Wlm.htm 从 (23, 54) 到 (223, 10)#168)
【问题讨论】:
-
错误信息意味着
.style左边的任何东西都是空的,在这种情况下,三个document.getElementById()调用之一返回空白。
标签: javascript java htmlunit