2017-03-02 63 views
1

我想創建一個cron作業,每週執行一個.jar。這個jar應該查詢MySQL服務器並保存值。這是我可以輕鬆完成的簡單部分。但現在我需要打開一個網頁,並在文本框中輸入2個值,然後按下按鈕。它可以在沒有任何GUI需求的情況下完成嗎?純java可以完成這個嗎?如果是,有關如何插入值的任何建議?哪個庫可以簡化這項任務?提前致謝。 (如果可能,我寧願不使用庫)。我進入這2個文本框,然後按send test email to按鈕如何設置數值並按下網頁上的按鈕?

This is how the website looks like

或者將一個PHP腳本更適合呢?網頁的

代碼:

<body> 
<form id="j_id2" name="j_id2" method="post" action="/SchnitzelDB/app/mail;jsessionid=BCF1C0890EE83C0C7A4B7B916F4360A2?execution=e1s4" enctype="application/x-www-form-urlencoded"> 
<input type="hidden" name="j_id2" value="j_id2" /> 
<table> 
<tbody> 
<tr> 
<td><input type="text" name="j_id2:j_id4" value="9" /></td> 
<td><input type="submit" name="j_id2:j_id5" value="Send Email" /></td> 
</tr> 
<tr> 
<td><input type="text" name="j_id2:j_id6" value="email" style="width:200px;" /></td> 
<td><input type="submit" name="j_id2:j_id7" value="Send Test Email To" /></td> 
</tr> 
</tbody> 
</table> 
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="e1s4" /> 
</form> 
</body> 
+0

考慮[硒(http://www.seleniumhq.org/)。 – SantiBailors

+0

有無頭瀏覽器可以幫助你完成這項任務。 這裏是其中一些列表:https://github.com/dhamaniasad/HeadlessBrowsers –

+2

如果您只需要以編程方式發佈HTML表單,請參閱:http://stackoverflow.com/questions/7581550/how- to-send-post-form-with-java – Berger

回答

0

所以我GOOGLE了一點了一圈,發現一些更適合我的問題。它是htmlunit。它很容易訪問網頁上的內容,並用值或單擊按鈕填充它們。

final HtmlForm form = page.getFormByName("j_id2"); 
final HtmlTextInput textField = form.getInputByName("j_id2:j_id4"); 
final HtmlTextInput textField1 = form.getInputByName("j_id2:j_id6"); 

final HtmlSubmitInput button = form.getInputByName("j_id2:j_id5"); 
for (String s : list) { 
    textField.setValueAttribute(String.valueOf(week)); 
    textField1.setValueAttribute(s); 
    button.click(); 
} 

這是我不得不爲了做才能達到所期望的行爲

+0

這些名字看起來非常脆弱! –

+0

@KorayTugay你的意思是什麼? – XtremeBaumer