2017-03-02 5 views
1

Ich möchte einen Cron-Job erstellen, der jede Woche ein .jar ausführt. Dieses jar soll einen MySQL-Server abfragen und die Werte speichern. Das ist der einfache Teil, den ich leicht machen kann. Aber jetzt muss ich eine Webseite öffnen und 2 Werte in Textfelder eingeben und danach einen Knopf drücken. Kann es ohne GUI gemacht werden? Ist es möglich, dies mit reinem Java zu erreichen? Wenn ja, irgendwelche Vorschläge, wie man die Werte einfügt? Welche Bibliothek würde diese Aufgabe vereinfachen? Danke im Voraus. (Ich würde es vorziehen, keine Bibliothek zu benutzen, wenn es möglich ist). Ich habe diese zwei Textfelder eingeben und dann drücken Sie die Taste send test email toWie man Werte einstellt und Tasten auf der Webseite drückt?

This is how the website looks like

Oder wäre dies ein PHP-Script besser geeignet sein?

-Code der Webseite:

<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

Betrachten [Selen] (http://www.seleniumhq.org/) zu erreichen. – SantiBailors

+0

Es gibt kopflose Browser, die Ihnen bei dieser Aufgabe helfen können. hier ist eine Liste für einige von ihnen: https://github.com/dhamaniasad/HeadlessBrowsers –

+2

Wenn Sie nur ein HTML-Formular programmatisch veröffentlichen müssen, finden Sie unter: http://stackoverflow.com/questions/7581550/how- to-send-post-form-with-java – Berger

Antwort

0

So gegoogelt ich ein bisschen mehr um und fand etwas besser geeignet für mein Problem. Es ist htmlunit. Es ist relativ einfach, auf den Inhalt der Webseite zuzugreifen und sie mit Werten zu füllen oder auf Schaltflächen zu klicken.

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(); 
} 

dies alles, was ich zu tun, um hatte, ist das gewünschte Verhalten

+0

Diese Namen sehen sehr zerbrechlich aus! –

+0

@KorayTugay was meinst du damit? – XtremeBaumer

Verwandte Themen