0

I am trying to open webpages and click on its links using HtmlUnit in java but am getting initialization error. Can someone tell me how to resolve this error. Here is my code:

package learn1;
import java.net.URL;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;

import org.junit.Test;


public class SearchExample{

    public static void main(String args[]) throws Exception {
        SearchExample exe=new SearchExample();
        exe.testSearch();

    }

    @Test
    public void testSearch() throws Exception {

        final WebClient webClient = new WebClient();
        webClient.setThrowExceptionOnScriptError(false);
        final URL url = new URL("http://www.google.com");
        final HtmlPage page = (HtmlPage)webClient.getPage(url);
        System.out.println(page.getTitleText());
        HtmlForm form = (HtmlForm) page.getForms().get(0);
        HtmlTextInput text = (HtmlTextInput) form.getInputByName("q");
        text.setValueAttribute("HtmlUnit");
        HtmlSubmitInput btn = (HtmlSubmitInput) form.getInputByName("btnG");
        HtmlPage page2 = (HtmlPage) btn.click();
        HtmlAnchor link = page2.getAnchorByHref("http://htmlunit.sourceforge.net/");
        HtmlPage page3 = (HtmlPage) link.click();
        System.out.print(page3.getTitleText());
        /*assertEquals(page3.getTitleText(), "htmlunit - Welcome to HtmlUnit");
        assertNotNull(page3.getAnchorByHref("gettingStarted.html"));*/
     }
}

I am getting following error:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/CredentialsProvider at learn1.SearchExample.testSearch(SearchExample.java:26) at learn1.SearchExample.main(SearchExample.java:19) Caused by: java.lang.ClassNotFoundException: org.apache.http.client.CredentialsProvider at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 2 more

Can't understand why I am getting this error when I have already imported com.gargoylesoftware.htmlunit.WebClient

Anh Pham
  • 2,108
  • 9
  • 18
  • 29
ACE
  • 11
  • 3
  • Please post your `initialization error`'s stacktrace. – u32i64 Jul 14 '17 at 08:27
  • Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/CredentialsProvider at learn1.SearchExample.testSearch(SearchExample.java:26) at learn1.SearchExample.main(SearchExample.java:19) Caused by: java.lang.ClassNotFoundException: org.apache.http.client.CredentialsProvider at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 2 more – ACE Jul 14 '17 at 08:54

1 Answers1

0

You are missing other dependencies, CredentialsProvider is from Apache Http Components. Here is the complete dependency list: http://htmlunit.sourceforge.net/dependencies.html

brnfd
  • 464
  • 2
  • 8