apache HtmlUnit ... PROBLEMA nella gestione di javascript
-
20-09-2019 - |
Domanda
Voglio accedere a un sito web ( http://www.orkut.com ) attraverso
com.gargoylesoftware.htmlunit.WebClient
Ma quando clicco sul pulsante "Invia", la cosa non mi prende alla pagina atteso che dovrebbe venire dopo il login. Invece restituisce nuovamente la stessa pagina di login. Nel senso chiaro, c'è qualche problema in login. Quando provo lo stesso codice con i siti che doen't avere javascript, funziona benissimo quindi penso che io non sono in grado di gestire gli script.
Sto cercando utilizzando il codice follwoing:
public static void main(String[] args) {
final WebClient webClient = new WebClient();
try {
HtmlPage loginPage = webClient.getPage(new URL("https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false"));
System.out.println(loginPage.getTextContent());
List<HtmlForm> forms = loginPage.getForms();
HtmlForm loginForm = forms.get(0);
HtmlInput username = loginForm.getInputByName("Email");
HtmlInput password = loginForm.getInputByName("Passwd");
HtmlInput submit = loginForm.getInputByName("signIn");
username.setNodeValue("username");
password.setNodeValue("password");
HtmlPage homePage = submit.click();
Thread.sleep(10 * 1000);
System.out.println(homePage.getTextContent());
}catch(Exception ex) {
ex.printStackTrace();
}
}
Quando facciamo clic sul pulsante "Invia", nel vero e proprio si chiama prima di questa funzione
onsubmit="return(gaia_onLoginSubmit());"
specificata come attributo del modulo sottostante
<form id="gaia_loginform" action="https://www.google.com/accounts/ServiceLoginAuth?service=orkut" method="post"
onsubmit="return(gaia_onLoginSubmit());">
Qualcuno mi può aiutare in questo.
NOTA: Pagherò PER LA SOLUZIONE
Soluzione
Secondo il loro sito il supporto JavaScript è fornito da Mozilla Rhino , quindi forse tutto ciò che serve è quello di aggiungere al classpath (e forse armeggiare con alcune configurazioni).
Inoltre, HtmlUnit ha supporto professionale