Все, что я хочу сделать, это дистанционно задать вопрос на ask.fm, используя java nad HTMLUnit framework. Я думаю, что это не работает из-за кода javascript, но я не уверен.HTMLUnit исполняющая форма с кодом javascript
это то, как задать вопрос форма выглядит следующим образом:
<form action="/userame/questions/create" autocomplete="off" id="question_form" method="post" onsubmit="$.ajax({data:$.param($(this).serializeArray()) + '&authenticity_token=' + encodeURIComponent('b9o8BHnVU6KDQ/oMsdQh+ClYPlS10134bpa7bFCkqtA='), dataType:'script', type:'post', url:'/username/questions/create'}); Forms.Profile.afterSubmit(); return false;" style="display:block"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="b9o8BHnVU6KDQ/oMsdQh+ClYPlS10134bpa7bFCkqtA=" /></div>
<div id="profile-title">
<div class="profile-title-text">
<span class="text-headline" dir="ltr"><span dir="ltr">KILO K ♣</span></span>
</div>
</div>
<div id="postLoaderTerritory">
<textarea class="composeQuestion-form growable-textarea" id="profile-input" name="question[question_text]"></textarea>
<div id="postLoader"></div>
</div>
<div id="post_options-border">
<div id="post_options">
<div id="generalLevel">
<div class="profile-title-counter" id="question_counter_span"></div>
<input class="submitBlue submitBlue-active" id="question_submit" name="commit" onclick="RLTME.rec('profile_q_send_click');return Forms.Profile.allowSubmit(this)" type="submit" value="Ask" />
</div>
</div>
</div>
<script type="text/javascript">
//<![CDATA[
window.setTimeout(function(){try{$("textarea#profile-input").focus();}catch(e){}},10);
//]]>
</script>
</form>
Это, как я пытаюсь сделать:
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);
webClient.getCookieManager().setCookiesEnabled(true);
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
HtmlPage page = webClient.getPage("http://ask.fm/username");
List<HtmlForm> forms = page.getForms();
HtmlForm ask = forms.get(1);
HtmlSubmitInput button = ask.getInputByName("commit");
HtmlTextArea text = ask.getTextAreaByName("question[question_text]");
text.setText("question");
HtmlPage click = button.click();
webClient.closeAllWindows();
Я получил также много предупреждений во время выполнения программы:
PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl уведомит ПРЕДУПРЕЖДЕНИЯ: тип Устаревшего содержания встречается: 'Текст/JavaScript'.
Это то, что сообщение содержит когда занесена в хроме:
authenticity_token:b9o8BHnVU6KDQ/oMsdQh+ClYPlS10134bpa7bFCkqtA=
question[question_text]:question
authenticity_token:b9o8BHnVU6KDQ/oMsdQh+ClYPlS10134bpa7bFCkqtA=
Как я могу получить это работает? Есть идеи?