2013-02-24 3 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 – 2013-02-24 12:20:35

+0

Пожалуйста, не удаляйте вопрос и не заменяйте бессмысленным, даже если вопрос разрешен. –

ответ

0

Поскольку элемент 'login' не найден на странице.

0

Как и в случае с пользователем2115021, в качестве первого шага убедитесь, что элементы, которые вы ищете, находятся на первой странице, которую вы запросили. В частности, убедитесь, что «login», «psswd» и «SubmitName» являются фактическими значениями в «currentPage».

Если это не сработает, попробуйте изменить способ получения имени формы. Я использовал

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

раньше, без каких-либо проблем. getForms() может возвращать несколько форм, и вам нужно быть уверенным, что вы смотрите на правильную форму.

Смежные вопросы