@shipovalov

Как на JAVA открыть страницу, ввести логин и пароль, а после входа скачать файл?

Надо зайти на страничку /accounts/login/, ввести логин и пароль. После входа скачать файл по ссылке /file/.
<form action="/accounts/signin/" method="POST">
<p><b>Введите логин</b></p>
<p><input type="text" name="form[login]" onclick="if (this.value == 'личный № организации') this.value='';" onblur="if (this.value == '') this.value='Поиск по сайту';" value="личный № организации" style="background:url('/images/men.png') no-repeat scroll 7px 3px transparent;padding-left:30px;"></p>
<p><b>Введите пароль</b></p>
<p><input type="password" name="form[password]"  onclick="if (this.value == 'личный № организации') this.value='';" onblur="if (this.value == '') this.value='Поиск по сайту';" value="личный № организации" style="background:url('/images/key.png') no-repeat scroll 7px 3px transparent;padding-left:30px;"></p>
<p>&nbsp;</p>
<input type="submit" value="Войти в кабинет">


Попробовал так
Connection.Response loginForm = Jsoup.connect("http://site/accounts/login/")
            .method(Connection.Method.GET)
            .execute();

    Document doct = Jsoup.connect("http://site/accounts/login/")
            .data("cookieexists", "false")
            .data("form[login]", "LOGIN")
            .data("form[password]", "PASSWORD")
            .cookies(loginForm.cookies())
            .post();


в doc получается HTML код страницы где надо ввести логин - пароль, а не страницы после входа.
Пробовал менять URL на тот, что в форме /accounts/signin/ - тоже самое.
  • Вопрос задан
  • 4560 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Santer_ua
Думаю Вам подойдет Selenium WebDriver , его используют для автоматизированного тестирования.
Ответ написан
Комментировать
zolt85
@zolt85
Программист
Jsoup это парсер. Он Вам ничем не поможет. Т.к. отправка данных формы это запрос, то Вам необходимо манипулировать запросом. Это можно делать при помощи Apache HttpClient, например ...
Ответ написан
Комментировать
@exenza
Попробуйте так:
Response res = Jsoup
    .connect("/url/to/login")
    .data("input[login]", "admin")
    .data("input[pass]", "QWERTY1234")
    .method(Method.POST)
    .execute();
Document doc = res.parse();

Document doc2 = Jsoup
    .connect("/url/to/file")
    .cookies(res.cookies())
    .get();


Или высокоуровневую библиотеку jWebUnit, она достаточно простая
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы