【发布时间】:2011-10-31 04:19:51
【问题描述】:
我正在尝试使用 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 或单击按钮,具有相同的效果。我希望页面的其他部分没有正确加载,但我仍然可以触发我想要的部分,但没有运气。
【问题讨论】:
-
错误 404 表示找不到资源(网页和脚本)。尝试确保 HtmlUnit 注意到 8090 端口号。你的细节太少,很难知道哪里出了问题。但从错误来看,它表明尝试以某种方式连接到您的网页时出现问题。
-
当 IE 和 Chrome 正常时,HtmlUnit 是否有任何理由会给出 404 错误?我如何确保 HtmlUnit 注意到 8090?我真的不明白你的意思。如果您需要任何额外的信息,我会提供,但显然我无法提供我正在登录的页面的任何详细信息。感谢您的回复。
-
@user1021379 你有没有得到这个工作?