2

我正在使用 Intranet 站点。当我通过 chrome 或 IE 浏览器登录https://itam.flextron.com.au/arsys/shared/login.jsp ”网站时,一切正常。但是,当我通过浏览器登录网站时,会弹出一个窗口并自动关闭,然后显示登录页面。

但是当我通过 HTMLUNIT 访问 Intranet 页面时,它会抛出一些 html 代码的异常。

公共类TestClass {

public static void homePage() throws Exception {
    WebClient webClient = new WebClient(BrowserVersion.CHROME);
    HtmlPage page = webClient.getPage("https://itam.flextron.com.au/arsys/shared/login.jsp");
    System.out.print("Accessing the webpage...");
    System.out.print(page.asText());
    webClient.closeAllWindows();
}
public static void main(String arg[]) 
{
    try {
        homePage();
    }
    catch(Exception e)
    {
        System.out.print("Exception : "+ e);
    }
}

}

**

例外:

**

Sep 27, 2014 11:47:17 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
WARNING: Obsolete content type encountered: 'application/x-javascript'.
Sep 27, 2014 11:47:17 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
INFO: statusCode=[404] contentType=[text/html]
Sep 27, 2014 11:47:17 PM com.gargoylesoftware.htmlunit.WebClient printContentIfNecessary
INFO: 
<HTML>

<HEAD>
<title>BMC&nbsp;Remedy&nbsp;Mid&nbsp;Tier&nbsp;7.1 - Error page</title><!--;-->
<style type="text/css">
    <!--
    BODY      {font-family:Tahoma,arial,helvetica,verdana;}
    .ErrorTitle {font-size:12pt; font-weight:bold; text-align:left;}
    .ErrorMsg  {font-size:12pt; text-align:left;}
    .ReturnHome {font-size:10pt;}
#product {position: absolute; top:20px; left: 0px; font: 16px "Arial", "Lucida Grande", "Verdana", "Helvetica", sans-serif; font-weight: bold; color: #ffffff; padding-left:18px; text-align:left;}
#logo {position: absolute; top:15px; right:0px}
    -->
</style>
<script>
function setOverride(yesno) {
    document.overrideForm.ipoverride.value = yesno;
    document.overrideForm.submit();
}


</script>
</HEAD>

<BODY style="background-repeat: no-repeat" leftmargin="0"  topmargin="0" marginwidth="0" marginheight="0">

<table border=0 cellpadding="0" cellspacing="0" width="100%">
	<!-- header table -->
	<tr>
		<td width="100%">
			<table border=0 cellpadding="0" cellspacing="0" width="100%" height=60>
			<tr>
				<td height=60 background="/arsys/shared/images/bkgd_image.gif">
				<span id="product">&nbsp;</span>
				<div id="logo" align="right">
					<img src="/arsys/shared/images/bmc_logo.gif" width="118" height="26" hspace="20" alt="BMC logo"> 
				</div>
				</td>
			</tr>
			</table>
		</td>
	</tr>
</table>

<br>
<br>
<br>
<br>
<table>
<tr>
<td width=150 nowrap>
    &nbsp;
</td>
<td>
    
        <div class="ErrorTitle">
        The following error(s) occurred while trying to process your request:<!--;-->
        </div>
        <br>
        <br>
        
            <div class="ErrorMsg">
            ARERR&nbsp;[9217]
            <br>
            File not found. Either the file requested is not present or the URL supplied is bad.&nbsp;
            </div>
            <br><br>
            
</td>
</tr>

<tr>
<td width=150 nowrap>
&nbsp;
</td>
<td class="ReturnHome">

        <a href=/arsys/home>Return to home page</a>

</td>
</tr>
</table>
<script>

var Msg="File not found. Either the file requested is not present or the URL supplied is bad.\n"
</script>

</BODY>
</HTML>

Exception: com.gargoylesoftware.htmlunit.ScriptException: Exception invoking open

4

1 回答 1

1

问题可能是代码正在运行一些 Javascript,而 HtmlUnitDriver 默认不支持。尝试这样的事情:

    HtmlUnitDriver driver = new HtmlUnitDriver;
    driver.SetJavaScriptEnabled(true);

如果这不起作用,您基本上可以通过 HtmlUnitDriver 运行另一个支持 JS 的浏览器,如下所示:

    HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
    driver.setJavascriptEnabled(true);
于 2015-04-30T21:58:25.307 回答