Programm, dass Buttons "drückt"?

3 Antworten

Im Vorfeld würde ich mir an deiner Stelle einmal genau anschauen, inwiefern es überhaupt notwendig ist, den direkten Buttonklick nachzubilden. Wenn es sich bspw. um einen Link handelt, der äußerlich wie ein Button gestyled wurde oder um den Absendebutton eines Formulars, kannst du die Daten womöglich auch gleich als HTTP Request verschicken. Dabei lohnt es sich, in der Entwicklerkonsole im Netzwerk-Tab sich die Request und Response Header anzuschauen. So ermittelst du schneller, ob die Daten, die von dir eingegeben wurden, vor Versand noch einmal bearbeitet wurden.

Gehe also auf die Seite und schau dir mit der Entwicklerkonsole des Browsers das Markup an. Ermittle, inwiefern deine zu reproduzierende Aktion wirklich ausgelöst wird. Wenn sich die Seite nach Buttonklick neu lädt, handelt es sich ganz sicher um einen vollständigen HTTP Request. Nun kann es nur noch sein, dass die Daten vor Versand gefiltert werden o.ä.. Definierte Event-Handler auf den Elementen geben dir z.B. nähere Auskunft.

Hier einmal 3 Beispiele:

<!-- Formular filtert die Werte, die abzusenden sind, du musst also das submit-Event des Formularelements auslösen -->
<form onsubmit="filter();">
  <input type="submit" value="yourbutton" />
</form>

<!-- Der Button sendet das Formular ab, daher kannst du einen HTTP Request ausführen oder das submit-Event des Formulars auslösen --> <form>
<input type="submit" value="yourbutton" /> </form>
<!-- Der Button handelt unabhaengig vom Formular, deshalb solltest du sein click-Event auslösen --> <form>
<input onclick="filter();" type="button" value="yourbutton" />
</form>

Sollte die Aktion kein Neuladen der Seite bewirken, handelt es sich um eine von JavaScript ausgeführte Aktion, die du nachbilden musst. Du musst in diesem Fall das click-Event des Buttons auslösen, sodass dieser mit seinem Handler die geforderte Aktion durchführen kann. Greife dafür über das DOM auf den Button zu.

Am besten gehst du über das DOM ("Document Object Model" - eine Darstellung der Webseite als Objekt mit Unterobjekten).

Wie der Button auf Ereignisse reagiert, steht in seinen Eventhandlern. Bei Mausklick heißt dieser Event "onclick" und wird wie eine gewöhnliche Eigenschaft des Tags notiert.

Das Click-Ereignis kann man auslösen, indem man die click()-Methode des Button-Objekts aufruft, vgl. https://www.google.de/search?q=python+html+dom+trigger+event&ie=utf-8&oe=utf-8

Ergänzung zu "onclick" und sonstigen Event-Eigenschaften: Was der Button (oder ein anderes HTML-Element) tun soll, steht im "Wert" der "Eventhandler-Eigenschaft".

Beispiel:

<button type="button" id="testButton1" onclick="buttonClick('Test Nr. 1')">Test Nr. 1</button>

bedeutet, dass bei einem Klick auf den Button mit der ID "testButton1" in den Scripts zur Webseite nach der Funktion "buttonClick" gesucht wird, und wenn sie gefunden wird, diese Funktion mit dem "Parameter"/"Funktionsargument" 'Test Nr. 1' aufgerufen wird.

Hierbei ist es egal, ob der Benutzer mit der Maus auf den Button geklickt hat, ob er den Button mit der Tab-Taste ausgewählt und mit der Leertaste ausgelöst hat oder ob ein Drittprogramm die click()-Methode dieses Button-Objekts aufgerufen hat.

-----

Bei Formularen ("<form>"-Objekte) gibt es regelmäßig ein Element vom Typ "submit", z. B.

<button id="form1_submit" type="submit">Absenden</button>

hier ist es sinnvoller, die submit()-Methode des form-Objekts aufzurufen.

1

Mit Arduino CMD Befehle ausführen?

Hi Leute,

wollte mal fragen ob es ne Möglichkeit gibt den Arduino so zu Programmieren, wenn er am PC angeschlossen ist und ein Button gedrückt wird, dass er einen CMD Befehl ausführt?

...zur Frage

Java Programm ist langsam geworden, Hover Effekte und Buttons haben ein kleines Delay bis sie aktiv sind?

Hey, ich bin aktuell dabei Java zu lernen, anhand Tutorials.

Ich habe ein kleines Cookie Clicker Spiel geschrieben, und es hat auch wunderbar funktioniert, doch irgend etwas ist passiert oder habe ich falsch gemacht das es auf einmal ein wenig "Laggt". Ich hatte Threads mit einer While true schleife, ich dachte das könnte daran liegen. So löschte ich sie komplett und es hat sich nichts getan.

Doch was meine ich überhaupt mir "Laggs":

Ich habe eine eigene Button Klasse programmiert, und diese hat einen Hover Effekt, das wenn man mit der Maus drüber fährt der Button eine dunkelgraue Farbe bekommt. Dies ging immer schnell und lief flüssig, doch nun gehe ich drauf und es dauert erst ein paar milisekunden, bis sich was tut. Hört sich wenig an ist aber echt unflüssig und nervig. Meine Scroll Funktion sieht so auch nicht mehr so schön aus und hängt. Nun wollte ich fragen, ob ein eventuell erfahrener Java Programmierer mir Gründe für derartige Verzögerungen sagen könnte. Vielleicht gibt es ja ein paar kleine Dinge die man nicht machen sollte, da sonst Laggs entstehen.

...zur Frage

Python aus CMD starten über Kurzbefehl

Hallo,

ich möchte gerne Python aus dem cmd Fenster unter Win 7 starten und zwar folgendermaßen:

Ich weiß, dass man irgendwie hinterlegen kann, dass der Befehl "C:\Python27\python.exe" hinter dem Kürzel "python" steckt... Dann könnte ich im cmd in jedem beliebigen Ordner den Befehl "python test.py" benutzen, um die Datei test.py mit Python auszuführen.

Wie funktioniert das genau??

Und gibt es auch eine Möglichkeit (ähnlich wie unter Linux) in der ersten Zeile des *.py-Files einen Befehl zu haben,dass die Datei automatisch als eine Python-Datei interpretiert wird?

Danke schon mal!

...zur Frage

mit Javascript zwischen iframes wechseln

Hallo,

ich wollte fragen ob es möglich ist zwischen iFrames mithilfe von Javascript zu wechseln, durch klick auf einen Button.

Mir geht es darum zwischen Flash-Games zu switchen (die ich in iFrame eingebunden habe).

Wie auf meiner selbstgemachten Vorlage. (Soll den ganzen Inhalt der Seite darstellen)(die roten Pfeile sollen richtig darstehen und zum nächsten Spiel führen)

mfg MarC

...zur Frage

Python Subprocess mehrere Programme öffnen?

Hallo liebe Com!

Ich habe mir in Python mit den Modulen Subprocess und Tkinter ein paar Buttons gebaut, die mir Programme von meinem Pc öffnen. Jedoch kann ich nur ein Programm öffnen, und während es offen ist, kann ich dem Python Programm nicht mehr sagen, dass es noch ein anderes Programm ausführen soll. Ich muss Das offene Programm erst schließen um das py-Programm wieder nutzen zu können und um somit ein anderes Programm zu öffnen.

Es scheint als ob Python immer noch mit dem ausführen des Programms beschäftigt wäre.

Hattet ihr ähnliche Probleme?

mit freundlichen Grüßen Stehr

...zur Frage

Bash: python :command not found?

Bekomme in Kali Linux jedes mal wenn ich versuche etwas mit Python auszuführen den selben oben beschrieben Error, habe Python 3.6.4 installiert (Windows) brauche ich noch ein zusätzliches Programm oder was mache ich falsch?

...zur Frage

Was möchtest Du wissen?