HtmlUnit NullPointerException - PullRequest
       1

HtmlUnit NullPointerException

0 голосов
/ 11 апреля 2020

Я делаю небольшое приложение для доступа к веб-сайту

public class Main_01 {

private static Logger log = Logger.getLogger(Main_01.class);

public static void main(String[] args) throws IOException {

    BasicConfigurator.configure();
    Logger.getRootLogger().setLevel(Level.DEBUG);

    Main_01 main = new Main_01();

    try (final WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER)) {

        webClient.getOptions().setJavaScriptEnabled(true);
        webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
        webClient.getOptions().setThrowExceptionOnScriptError(false);
        webClient.setCssErrorHandler(new SilentCssErrorHandler());
        webClient.getOptions().setRedirectEnabled(false);

      final HtmlPage pageHome = webClient.getPage("https://www.phpbb.com");
       final HtmlPage page = webClient.getPage("https://www.phpbb.com/community/ucp.php?mode=login");
       System.out.println(page.getTitleText());
        final HtmlForm form = page.getFirstByXPath("//form[@action='./ucp.php?mode=login']");
        System.out.println(form.asText());


    }
}

}

gtFirstByXPath возвращает исключение NullPointerException, но я уверен, что «действие формы» существует, как вы можете видеть

Что такое синтаксис htmlUnit? Спасибо

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Форма блокируется следующим образом

<form action="./ucp.php?mode=login&amp;sid=966c26f6333def472ee4061a8cabfa96" method="post" id="login" data-focus="username">

Значение атрибута больше, чем строка поиска.

Попробуйте что-то вроде этого

page.getFirstByXPath("//form[starts-with(@action, './ucp.php?mode=login')]");
0 голосов
/ 11 апреля 2020

Я не знаю, почему это вызывает исключение. Но это должно быть работа: //*[@id='wrapcentre']/form

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...