2013-02-24 4 views
0

내 대학 웹 사이트에 로그인하려고했지만 HTML 단위에 문제가있는 것으로 나타났습니다.HtmlUnit을 사용하여 로그인 웹 사이트

내 코드 :

WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8); 
    webClient.setJavaScriptEnabled(false); 
    webClient.setThrowExceptionOnScriptError(false); 
    HtmlPage currentPage = webClient.getPage("http://www.oid.hacettepe.edu.tr/cgi-bin/menuindex.cgi"); 
    HtmlForm form = currentPage.getForms().get(0); // forms correct 
    System.out.println(form.asXml()); 
    HtmlTextInput name = form.getInputByName("login"); 
    HtmlPasswordInput pass = form.getInputByName("passwd"); 
    name.setValueAttribute("*****"); 
    pass.setValueAttribute("*****"); 
    HtmlSubmitInput button = form.getInputByName("SubmitName"); 
    HtmlPage page2 = button.click(); 
    System.out.println(page2.asText()); 

결과 :

Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[input] attributeName=[name] attributeValue=[login] 
    at com.gargoylesoftware.htmlunit.html.HtmlForm.getInputByName(HtmlForm.java:460) 
    at hacettepe.Hacettepe.main(Hacettepe.java:34) 
Java Result: 1 

는이 문제에 대한 내 생각에 어떤 문제가 있는지 설명 할 수 있습니까? 고마워.

+0

asXml을 인쇄하고 있습니다. 그 산출물에서 당신이 기대하는 것을 보았습니까? –

+0

http://pastebin.com/1nu7FX9m –

+0

문제가 해결 되더라도 질문 문을 제거하고 말도 안되는 것으로 바꾸지 마십시오. –

답변

0

'login'요소가 페이지에서 발견되지 않았습니다.

0

user2115021이 제안한 것처럼 첫 번째 단계에서 찾고있는 요소가 실제로 요청한 첫 페이지에 있는지 확인합니다. 특히, "login", "psswd"및 "SubmitName"은 "currentPage"내의 실제 값입니다.

그래도 문제가 해결되지 않으면 양식 이름을 가져 오는 방법을 변경해보십시오. 나는 어떤 문제없이 이전

final HtmlForm form = page.getFormByName("loginform");

을 사용했습니다. getForms()는 여러 양식을 반환 할 수 있으므로 올바른 양식을 찾고 있는지 확인해야합니다.

관련 문제