Автоматизация с использованием HtmlUnit
Я пытаюсь открыть веб-страницы и нажать на его ссылки, используя HtmlUnit в Java, но получаю ошибку инициализации. Может кто-нибудь сказать мне, как решить эту ошибку. Вот мой код:
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"));*/
}
}
Я получаю следующую ошибку:
Исключение в потоке "main" java.lang.NoClassDefFoundError: org/apache/http/client/CredentialsProvider на веб-сайте learn1.SearchExample.testSearch(SearchExample.java:26) на веб-сайте learn1.SearchExample.main(SearchExample.java:19). Причина: java.lang.ClassNotFoundException: org.apache.http.client.CredentialsProvider в java.net.URLClassLoader.findClass(неизвестный источник) в java.lang.ClassLoader.loadClass(неизвестный источник) в sun.misc.Launcher$AppClassLoader.loadClass(загрузчик. Неизвестный источник) на java.lang.ClassLoader.loadClass(Неизвестный источник) ... еще 2
Не могу понять, почему я получаю эту ошибку, когда я уже импортировал com.gargoylesoftware.htmlunit.WebClient
1 ответ
Вам не хватает других зависимостей, CredentialsProvider из Apache Http Components. Вот полный список зависимостей: http://htmlunit.sourceforge.net/dependencies.html