Klick simulieren

reddi87

Grünschnabel
Hallo Community,

für ein Projekt möchte ich folgende Problemstellung lösen:

Eine externe Website soll per iFrame auf der eigenen Website eingebunden werden. Die fremde Website enthällt eine Abfolge von Formularen, welche ausgefüllt und abgeschickt werden müssen. Am Ende dieses Prozesses steht ein Ergebnis, welches ausgewertet werden soll.

Keine Angst es soll hier kein Spambot oder sonst irgend etwas in der Art erstellt werden ;-)

Ich hatte erst die Idee das Formular bzw. die Elemente des Formulars über JavaScript direkt anzusprechen, jedoch ist dies aufgrund der Unterschiedlichen Domains der externen und der eigenen Seite nicht möglich (Cross Scripting).

Meine weitere Überlegung war es, einen Klick auf den SubmitButton des Formulars zu simulieren. Jedoch konnte ich bei Recherchen nichts passendes finden.

Nun die Frage an euch: Gibt es eine Möglichkeit das oben beschriebene Problem zu lösen? - Vorzugsweise mit JavaScript - Falls JavaScript nicht funktioniert darf auch gern eine Lösung mit einer anderen Programmiersprache gezeigt werden... man kann sich ja einlesen ;-)

Vielen Dank für eure Mühe!
 

sheel

I love Asm
Hi und Willkommen bei tutorials.de,

es soll also von deiner Website ausgehen, kein Standalone-programm?
 

Harrier

Erfahrenes Mitglied
Mit JavaScript sehe ich da erstmal keine Möglichkeit. Selbst wenn du eine findest, die browserübergreifend funktioniert, wird die wohl nur bis zum nächsten Sicherheitsupdate durchhalten, da du - wie du ja selbst schon gesagt hast - damit den Schutz gegen XSS umgehst.

Lösen ließe sich dies mit Hilfe eines serverseitigen Scripts. Dabei könntest du einen HTTP request an die fremde Seite schicken, die deine ausgefüllten Formulardaten enthält. Die könntest du dann in deinem serverseitigen Script auswerten, oder das Ergebnis in deinen IFrame einbinden und per JS auswerten. Es gibt einige PHP basierte HTTP Client Bibliotheken, die hier hilfreich sein könnten. (==> google)

Auch eine lokale Kopie (ob statisch oder dynamisch erzeugt) des Formulars anstelle des originals in den iFrame einzubinden wäre möglich. Dann kannst du das Formular aber lediglich abschicken. Auf die Antwort lässt sich hiermit nicht mehr zugreifen.
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

da es sich um eine Automatisierung im Browser handelt, empfehle ich mal wieder Selenium. Ein sehr mächtiges Werkzeug, ich verwende es zur Automatisierung von Testfällen, aber für deinen Zweck kannst du es auch verwenden.

Mit Hilfe der IDE (Firefox Addon) lassen sich die Testfälle einfach aufzeichnen und später dann beliebig oft wiederholen. Die Dokumentation ist gut und leicht zu verstehen.

Grüße,
BK
 
Zuletzt bearbeitet: