Использование HTMLUnit для программного входа в Facebook с использованием Java - PullRequest
3 голосов
/ 21 января 2011

Этот вопрос является своего рода дополнением к этому вопросу: Как программно войти в Facebook с помощью 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)

Что я делаю не так?

1 Ответ

1 голос
/ 21 января 2011

Похоже, htmlunit не нравится некоторые из JavaScript.

Попробуйте отключить его, так как он не нужен для входа в систему:

webClient.setJavaScriptEnabled(false);
...