Używam jednostki HTML, aby przejść do strony internetowej, wypełnić niektóre formularze i kliknąć przycisk, aby przejść do następnej strony internetowej. Ta nowa strona (zwana newPage w moim kodzie) jest tym, z którego wydobywam źródło html.Android: Błąd CSS podczas korzystania z jednostki HTML i Eclipse
Metoda ta sprawdza się doskonale w Netbeans (choć daje nadmierną ilość ostrzeżeń)
import org.jsoup.Jsoup;
/* Regular (textview, button, etc) imports */
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
String username = "USERNAME", school = "SCHOOL", userpassword = "PASSWORD";
HtmlElement loginName = null;
HtmlElement password = null;
//HtmlPage newPage;
HtmlAnchor anchorByHref = null;
try {
WebClient webClient = new WebClient();
final HtmlPage page = webClient
.getPage("https://cupertino.schoolloop.com/portal/login?d=x&return_url=1325402408153");
loginName = page.getElementByName("login_name");
password = page.getElementByName("password");
loginName.setTextContent(username);
loginName.setAttribute("value", username);
password.setAttribute("value", userpassword);
password.setTextContent(userpassword);
anchorByHref = page
.getAnchorByHref("javascript:document.form.event_override.value='login';document.form.submit();");
HtmlPage newPage = anchorByHref.click();
webClient.waitForBackgroundJavaScript(10000);
String html = newPage.getWebResponse().getContentAsString();
message2.setText(html);
} catch (Exception e) {
e.printStackTrace();
}
}
Jednak w Eclipse z systemem Android, to mówi
01-02 17:38:54.099: E/dalvikvm(23163): Could not find class 'org.w3c.dom.css.CSSCharsetRule', referenced from method com.gargoylesoftware.htmlunit.javascript.host.css.CSSCharsetRule.getCharsetRule
w LogCat.
Również, nie ustawia tekstu wiadomości2 jako HTML chcę, chociaż kiedy próbuję tego w Netbeans i wydrukuję "html", to faktycznie wydrukuje pełne źródło HTML strony!
Podsumowując, istnieją 2 problemy. Eclipse nie otrzymuje html i podaje komunikat o błędzie, że nie może znaleźć klasy CSSCharsetRule. Myślę, że zaimportowałem odpowiedni plik .jar, ale nie jestem pewien, ponieważ w jednostce HTML znajduje się około 15 znaków .jar i nie mogę ich zaimportować, ponieważ aplikacja ma problemy z emulatorem i telefonem.
I have figured out that the error was due to not importing xml-apis-1.3.04.jar (which was imported in the Netbeans Project).
Jednak teraz mogę napotkać
"Konwersja do Dalvik Format zakończyła się błędem 1"
błąd.
Czy jest możliwe, że którykolwiek z problemów spowodowałby wartość Null w html i jak mogę naprawić błąd konwersji Dalvik?
.jar Eclipse (zbyt wiele czyni app ciężki, a tym xml-apis powoduje Dalvik błąd)
pliki jar w NetBeans (roboczy)
zaimportować znaczenie, aby dodać je do ścieżki budowania w Eclipse *. Dodanie JUnit jako jednego ze słoików pomogło. – Kgrover