Авторизуйтесь на сайте с помощью веб-клиента в форме без кнопки отправки. - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу собрать некоторую информацию на веб-сайте, который требует от меня входа в систему.

Я наткнулся на HtmlUnit и уже могу найти форму входа, заполнить поля ввода электронной почты и пароли.Проблема в том, что я не могу отправить эту форму, потому что нет кнопки отправки.

Я уже пытался создать временную кнопку, но она не сработала.За этим последовало вопрос .

Попытка найти отправку ввода в качестве привязки, выполнение сценария Java и т. Д., Но безрезультатно.

    WebClient webClient = new WebClient(BrowserVersion.FIREFOX_52);
    webClient.getOptions().setJavaScriptEnabled(true);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setCssEnabled(false);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    webClient.getOptions().setRedirectEnabled(true);

    // disable caching
    webClient.getCache().setMaxSize(0);

    // Get the first page
    final HtmlPage page = webClient.getPage("https://www.jpdi.pt");

    webClient.waitForBackgroundJavaScript(10000);

    final HtmlForm form = page.getHtmlElementById("login_form");

    form.getInputByName("login_email").setValueAttribute("my_email");
    HtmlInput passWordInput = form.getInputByName("login_password");

    passWordInput.setValueAttribute("my_password");

    //wait a little
    Thread.sleep(2000);

    ScriptResult result= page.executeJavaScript("document.getElementById('submit_login').click()");

    final HtmlPage secondPage  = (HtmlPage) page.getWebClient().getCurrentWindow().getEnclosedPage();

    System.out.println(secondPage.asText());

Распечатанная страницаоригинал с двумя заполненными вводами, а не страница, которую я ожидаю .. Есть идеи?

...