2012-01-04 5 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 요소가 없으며 name 요소도 없습니다. 그것은 단지 자바 스크립트가 있습니다. 미안해. 내가 분명하지 않다면, 나는 이걸 처음 봤어. 다음은 폼의 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를 사용하여 로그인 버튼을 '클릭'것? 또한, .method (Method.POST) 대신 .post() 메서드를 사용해 보았습니다. 그러나 이렇게했을 때 프로그램이 작동하지 않고 다음 메시지가 나타납니다. "오류 : 400 오류로드 URL"

나는 또한 웹 사이트를 소유하고 있지 않으며, Android 용으로 제작 한 기본 앱에서 사용하고 있습니다.

+0

이것에 대한 답변을 얻었습니까? – Ethan

답변

0

연결 방법에서 URL을 전달할 때 로그인 페이지 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() 메소드는 나에게 "Error : 400 error loading URL"을 다시 주었다. –