我想通过
登录网站 ( 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/