2009-10-08 61 views
1

我想通過阿帕奇.....的HtmlUnit問題,在處理JavaScript

com.gargoylesoftware.htmlunit.WebClient 

登錄到網站(http://www.orkut.com),但是當我點擊「提交」按鈕,它不帶我去登錄後應該出現的預期頁面。相反,它會再次返回相同的登錄頁面。明確地說,登錄有一些問題。當我嘗試與沒有JavaScript的網站相同的代碼時,它工作正常,所以我認爲我無法處理腳本。

我使用的follwoing代碼嘗試:

public static void main(String[] args) { 
    final WebClient webClient = new WebClient(); 
    try { 
     HtmlPage loginPage = webClient.getPage(new URL("https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false")); 
     System.out.println(loginPage.getTextContent()); 
     List<HtmlForm> forms = loginPage.getForms(); 
     HtmlForm loginForm = forms.get(0); 
     HtmlInput username = loginForm.getInputByName("Email"); 
     HtmlInput password = loginForm.getInputByName("Passwd"); 
     HtmlInput submit = loginForm.getInputByName("signIn"); 
     username.setNodeValue("username"); 
     password.setNodeValue("password"); 
     HtmlPage homePage = submit.click(); 
     Thread.sleep(10 * 1000); 
     System.out.println(homePage.getTextContent()); 
    }catch(Exception ex) { 
     ex.printStackTrace(); 
    } 
} 

當我們點擊「提交」按鈕,在實際它首先調用指定的屬性此功能

onsubmit="return(gaia_onLoginSubmit());" 

下面的表格

<form id="gaia_loginform" action="https://www.google.com/accounts/ServiceLoginAuth?service=orkut" method="post" 
    onsubmit="return(gaia_onLoginSubmit());"> 

任何人都可以幫助我。

注:我將支付解決方案

回答

2

According to their site JavaScript的支持是由Mozilla Rhino提供,所以也許你需要的是將它添加到你的classpath(也許一些配置亂動)。

此外,HtmlUnit的professional support

+0

我已經張貼了我的問題化的HtmlUnit郵件列表([email protected])和專業的HtmlUnit支持(http://www.efficient-webtesting.com ) 我已經安裝了Mozzilla Rhino並將它添加到我的類路徑中。你能告訴我需要修改什麼配置嗎? – 2009-10-09 06:34:03

+0

請將com.gargoylesoftware.htmlunit.javascript閱讀器設置爲調試級別,以便您可以看到正在執行的內容。 – 2009-10-09 19:01:41