apache HTMLUNIT ..... ПРОБЛЕМА в обработке JavaScript - PullRequest
1 голос
/ 08 октября 2009

Я хочу войти на сайт (http://www.orkut.com) через

com.gargoylesoftware.htmlunit.WebClient

Но когда я нажимаю кнопку «Отправить», я не перехожу на ожидаемую страницу, которая должна появиться после входа в систему. Вместо этого он снова возвращает ту же страницу входа. В ясном смысле, есть некоторая проблема в логине. Когда я пытаюсь использовать тот же код на сайтах, на которых нет javascript, он работает нормально, поэтому я не могу обрабатывать сценарии.

Я пытаюсь использовать следующий код:

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();
    }
}

Когда мы нажимаем кнопку «отправить», на самом деле она сначала вызывает эту функцию

onsubmit="return(gaia_onLoginSubmit());"

указан как атрибут формы ниже

<form id="gaia_loginform" action="https://www.google.com/accounts/ServiceLoginAuth?service=orkut" method="post"
    onsubmit="return(gaia_onLoginSubmit());">

Может ли кто-нибудь помочь мне в этом.

Примечание: я заплачу за решение

1 Ответ

2 голосов
/ 08 октября 2009

В соответствии с их сайтом поддержку JavaScript обеспечивает Mozilla Rhino , поэтому, возможно, все, что вам нужно, это добавить его в свой путь к классам (и, возможно, возиться с некоторыми конфигурациями).

Кроме того, HtmlUnit имеет профессиональную поддержку

...