2012-01-04 437 views
3

如何使用Jsoup執行一個JavaScript按鈕點擊?Jsoup JavaScript按鈕點擊

String html = Jsoup.connect(url) 
       .followRedirects(true) 
       .data("login_name", username) 
       .data("password", userpassword) 
       .method(Method.POST).get().html(); 

這是我用來設置用戶名和密碼字段在一個網站的代碼,但是當我搶的HTML,它給了我與頁面的領域登錄頁面填寫的HTML,而不是登錄後頁面。所以這一定意味着Jsoup只是填補了領域,但沒有登錄我。我該怎麼做呢?此外,登錄按鈕沒有id元素,也沒有名稱元素。它只有JavaScript。對不起,如果我不清楚,我是新手。下面是形式的html代碼:

<form name="form" id="form" method="POST" action="/portal/login?etarget=login_form" autocomplete="off"> 

這是登錄按鈕的HTML代碼:

<a href="javascript:document.form.event_override.value='login';document.form.submit();" class="btn_css">  

我怎麼會「點擊」使用Jsoup登錄按鈕?此外,我嘗試使用.post()方法,而不是.method(Method.POST),但是當我這樣做時,我的程序沒有工作,並給了我這個消息:「Error:400 error loading URL」

另外我沒有自己的網站,我正在使用這個我正在爲Android構建的本地應用程序。

+0

你有沒有得到迴應呢? – Ethan 2014-04-01 19:21:34

回答

0

在connect方法中傳遞URL時,不是傳遞Login Page URL,而是傳遞主頁的鏈接。

Document doc = Jsoup.connect("http://www.website.com/home.php") 
    .data("email", "myemailid") 
    .data("pass", "mypassword") 
    // and other fields which are being passed in post request. 
    .userAgent("Mozilla") 
    .post(); 

試試這個,你會得到你的結果。

+0

'login_name'和'password'元素不在主頁上。我嘗試過,但.post()方法再次給了我「錯誤:400錯誤加載URL」 – 2012-01-07 00:17:19