java - 使用 HTMLUnit 以编程方式使用 Java 登录 Facebook

标签 java javascript html facebook login-script

这个问题是对这个问题的补充: How to log into Facebook programmatically using Java?

我已经使用(稍微修改过的版本)以下代码登录其他网站的帐户,效果很好。

WebClient webClient = new WebClient();
HtmlPage page1 = webClient.getPage("http://www.facebook.com");
HtmlForm form = page1.getForms().get(0);
HtmlSubmitInput button = (HtmlSubmitInput) form.getInputsByValue("Login").get(0);
HtmlTextInput textField = form.getInputByName("email");
textField.setValueAttribute("bob@smith.com");
HtmlPasswordInput textField2 = form.getInputByName("pass");
textField2.setValueAttribute("ladeeda");
HtmlPage page2 = button.click();

但是,每当我尝试使用正确的电子邮件和密码登录 facebook 时,我都会遇到两个问题:

SEVERE: Job run failed with unexpected RuntimeException: TypeError: Cannot find 
function addImport in object [object]. 
(http://static.ak.fbcdn.net/rsrc.php/yC/r/gmR3y_ARtaM.js#10)

Exception class=[com.gargoylesoftware.htmlunit.ScriptException]
com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot read property "length"         
from undefined (http://static.ak.fbcdn.net/rsrc.php/yC/r/gmR3y_ARtaM.js#10)

我做错了什么?

最佳答案

看起来 htmlunit 不喜欢某些 javascript。

尝试将其关闭,因为它不是登录所必需的:

webClient.setJavaScriptEnabled(false);

关于java - 使用 HTMLUnit 以编程方式使用 Java 登录 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4757233/

相关文章:

java - struts 1 验证不起作用

java - 使用 JSF 在 Google App Engine 中丢失 session

java - 如何限制下拉列表中的值?

java - 具有上限的通配符类型变量的迭代器

javascript - 动态复选框、单选、复选框组、单选组 extjs

javascript - 如何动态选择要在指令/ Controller 中使用的存储库/服务?

php - HTML <img>(或 JS 图像)与通过 PHP 的内联图像(base64_encoded 图像)

javascript - getElementById问题

html - 如何在网页正文中的所有元素周围添加边框?

javascript - 如果不适用于 Javascript 中的 .innerHTML