我正在尝试使用 HTMLUnit 登录网站,但每当我提交登录详细信息时,都会出现大量错误。我将代码分成小块,这样我就可以看到它是在单击提交按钮之后,但在其他任何事情发生之前;这需要一段时间,因为它是一个非常慢的网站。不幸的是,因为它是在登录后发生的,所以我无法向您展示它的含义。我可以说成功的登录有一些重定向,因为它给了我一个页面未找到的错误,我假设它是导致问题的重定向之一。我以前在 Chrome 中遇到过重定向问题,尽管不是在这个特定页面上,但 Chrome 和 IE8 现在都可以正常加载它。
为您保存完整的堆栈跟踪,这似乎是最重要的内容:
SEVERE: Error loading JavaScript from [http://servicedeskmt.det.nsw.edu.au:8090/kinetic/displayPage.jsp/../resources/js/jquery/jquery-1.3.2.js].
com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException: 404 /kinetic/resources/js/jquery/jquery-1.3.2.js for http://servicedeskmt.det.nsw.edu.au:8090/kinetic/resources/js/jquery/jquery-1.3.2.js
at com.gargoylesoftware.htmlunit.WebClient.throwFailingHttpStatusCodeExceptionIfNecessary(WebClient.java:535)
INFO: statusCode=[404] contentType=[text/html]
Oct 31, 2011 2:31:29 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
INFO: <html>
<head>
<title>Page cannot be found</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div align="center">
<p> </p>
<p> </p>
<p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">There was
an error on the page you were attempting to reach or the page could not be
found.</font></b> <br>
</p>
<p><br>
<br>
<a href="http://www.kineticdata.com"><img src="resources/poweredByKS.gif" width="131" height="45" border="0"></a>
</p>
</div>
</body>
</html>
如有任何建议,我们将不胜感激。 谢谢。
编辑:添加更多细节 无论我是否将结果设置为等于新页面,该错误都会发生在 loginButton.click() 上。仅 loginButton.click() 的一行会导致长时间暂停(就像我说的,页面需要一段时间才能加载),然后抛出错误。如果我捕获异常,然后尝试加载页面的登录版本,则会发生相同的情况,这告诉我我的登录尝试成功,但加载登录页面会导致问题。 将凭据存储在 DefaultCredentialsProvider 中,然后直接进入登录页面,会出现相同的错误。我想我可以有把握地说这是页面,而不是登录。
加载页面,并在同一语句中运行 javascript 或单击按钮,具有相同的效果。我希望页面的其他部分没有正确加载,但我仍然可以触发我想要的部分,但没有运气。
最佳答案
我遇到了类似的问题,并使用以下代码使其正常工作:
webClient.setThrowExceptionOnFailingStatusCode(false);
webClient.setThrowExceptionOnScriptError(false);
关于java - 当浏览器正常工作时,Java 中的 HtmlUnit 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949984/