Witam
Sprawa dotyczy się Androida. W normalnym projekcie java wszystko działa bez problemu.
Mam problem z zaimportowaniem biblioteki HTMLUnit. W zasadzie sam import przebiega bez zarzutu PPM na projekcie -> Propierts -> Java Build Path -> Add External JARs.
Wszystko ładnie się dodaje. Kompilator nie widzi problemu, ale po uruchomieniu metody korzystającej z dobrodziejstw HTMLUnit wywala się błąd:
06-27 16:33:06.796: E/dalvikvm(284): Could not find class 'com.gargoylesoftware.htmlunit.DefaultCssErrorHandler', referenced from method com.gargoylesoftware.htmlunit.WebClient.<init>
</CODE>
public static void wypelnianieFormularza() throws MalformedURLException, IOException, InterruptedException
{
final WebClient webClient = new WebClient();
// Get the first page
final HtmlPage page = webClient.getPage(url);
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page.getForms().get(0);
final HtmlSubmitInput button = form.getInputByValue("Sprawdź");
@SuppressWarnings("deprecation")
HtmlSelect selekt = form.getElementById("Year");
HtmlOption option = selekt.getOptionByValue("2011");
selekt.setSelectedAttribute(option, true);
@SuppressWarnings("deprecation")
HtmlSelect selekt2 = form.getElementById("IdSeries");
HtmlOption option2 = selekt2.getOptionByValue("23");
selekt2.setSelectedAttribute(option2, true);
final HtmlTextInput textField = form.getInputByName("Number");
textField.setValueAttribute("158956521");
// Now submit the form by clicking the button and get back the second page.
final HtmlPage page2 = button.click();
WebWindow window = page2.getEnclosingWindow();
while(window.getEnclosedPage() == page2) {
// The page hasn't changed.
Thread.sleep(500);
}
HtmlPage page3 = (HtmlPage) window.getEnclosedPage();
webClient.closeAllWindows();
System.out.println(page3.asXml());
}</CODE>
Wygląda jakbym nie zaimportował czegoś czyż nie? Ale ja przecież to zrobiłem:/
Dodatkowo pokazuje problem przy klasie WebClient, ale metodą prób i błędów doszedłem do tego, że problemem jest klasa WebWindow. Usuwając ją z kodu, nie wywala errora.
Testowałem kod na normalnym projekcie java i nie było żadnego problemu.
Ogólnie program ma wypełniać formularz na danej stronie, wysyłać i odbierać rezultat. Próbowałem z Jsoup, HttpClient ale one nie zwracają poprawnych wyników. Właściwie to strona jest jakby na nie uodporniona i wywala captche. Tylko htmluit sobie z nią radzi, ale na złość nie chce zadziałać. Przekopałem cały internet i niczego nie znalazłem. Sprawa wydaje się banalna i co najmniej dziwna, ale za nic nie mogę sobie z tym poradzić.
Właściwie z selenium jest identyczny problem jak powyżej. Tylko tam pojawia się błąd przy AndroidDriver:
06-28 14:35:50.463: E/AndroidRuntime(508): java.lang.NoClassDefFoundError: org.openqa.selenium.android.AndroidDriver
Dlatego zwracam się do was, czy widzicie tutaj jakieś rozwiązanie? Będę wdzięczny za jakąkolwiek pomoc bo naprawdę już mam tego serdecznie dosyć:/