java - apache HTMLUNIT.....处理 javascript 时出现问题

标签 java apache authentication webclient login-script

我想通过

登录网站 ( 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());">

任何人都可以帮助我吗?

注意:我将支付解决方案的费用

最佳答案

According to their site JavaScript 支持由 Mozilla Rhino 提供,所以也许您需要的只是将其添加到您的类路径中(也许还需要进行一些配置)。

另外,HtmlUnit 有 professional support

关于java - apache HTMLUNIT.....处理 javascript 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536896/

相关文章:

网络接口(interface)更改后 Java 重新连接

javascript - 自动登录 chrome 扩展

java - Tomcat 服务器未从 spring 启动

java - persistence.xml 中的数据库模式名称

java - 如何在java中模拟类而不创建接口(interface)

java - 运行 Hipi mapreduce 程序

Java - 更新窗口覆盖

java - 将此 Camel 路由片段从 Java DSL 转换为 Blueprint xml

laravel - 仅在 Laravel 中公开某些授权路由

javascript - AngularJS |在加载之前处理路由