Этот вопрос является своего рода дополнением к этому вопросу: Как программно войти в 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)
Что я делаю не так?
Похоже, htmlunit не нравится некоторые из JavaScript.
Попробуйте отключить его, так как он не нужен для входа в систему:
webClient.setJavaScriptEnabled(false);