Formular ausfüllen

  • Hallo,
    ich bins mal wieder :)

    Habe vor ein Programm zu schreiben, mit dem man sich einfach Klingeltöne und Spiele auf sein Handy holen kann.

    Dazu muss online ein Formular ausgefüllt werden, womit ich arge Probleme habe. Leider habe ich bis jetzt keine Möglichkeit gefunden, das Formular dynamisch auzufüllen...

    http://mobiledownloads.aol.de/klingeltane-lo…6-herbstfeeling

    Zuerst soll auf Premium SMS geklickt werden, danach soll rechts eine Nummer eingegeben und auf Senden geklickt werden.
    Würde mich freuen, wenn mir jemand einene Lösung/einen Lösungsansatz geben könnte.

    mfg
    xanicel

    Einmal editiert, zuletzt von xanicel (4. Oktober 2009 um 20:28)

  • Hab jetzt soweit alles installiert, jedoch habe ich noch ein Problem mit dem ankreuzen der Box.

    Code
    <input name="option" id="payment_option_3" value="3" onclick="select_payment_type(this.value);" type="radio">

    Wie lautet der Befehl, um diese Checkbox anzukreuzen?

    mfg

  • Habs immernoch nicht geschafft ...
    Danke an alle, die schon versucht haben, mir zu helfen ^^

    Mit normalen Formularen habe ich ja keine Probleme, aber das streikt irgendwie :D

    mfg

  • Stilgar

    Es gibt bestimmt welche die Finden Ie funktionen einfacher als es mit Firefox
    es hängt auch davon ab ob mozrepl installiert ist da nicht jeder mozrepl installiert hat bzw. es extra für ein Programm installiert

  • @simon:
    Nun ja dies ist wohl war - und nicht nur MozRepl - man muß sogar FireFox installieren um ihn mit der FF.au3 nutzen zu können.

    MozRepl läßt sich auch automatisch installieren, das ist wohl ein eher nebensächliches Problem.

    Da frag ich mich was wohl passiert wenn MS ihren IE aus zukünftigen Win-Versionen verbannen muß - funktioniert die IE.au3 dann noch?

  • Ich habe erst mit autoit angefangen und komme mit dem Befehl nicht klar :D

    Ich habe den code in die ff.au3 gepackt:

    [autoit]

    ; #FUNCTION# ===================================================================
    ; Name ..........: _FF_RecordForm
    ; Description ...:
    ; AutoIt Version : V3.3.0.0
    ; Requirement(s).: FF.au3 / MozRepl
    ; Syntax ........: _FF_RecordForm()
    ; Parameter(s): .: -
    ; Return Value ..: Success - FF.au3 functions to fill the form
    ; Failure - empty string
    ; Author(s) .....: Thorsten Willert
    ; Date ..........: Wed Sep 16 17:52:41 CEST 2009
    ; Version .......: 0.2
    ; ==============================================================================
    Func _FF_RecordForm()
    Local $sScript = ""
    Local $sCmd, $tmp, $iElements, $sType

    [/autoit][autoit][/autoit][autoit]

    _FFCmd("FFau3.tmp=window.content.document.activeElement;")
    For $i = 0 To _FFGetLength("form") -1
    $iElements = _FFFormGetElementsLength($i) - 1
    For $j = 0 To $iElements
    If _FFCmd("FFau3.tmp==window.content.document.forms[" & $i & "].elements[" & $j & "] ? 1 : 0") = 1 Then ExitLoop
    Next
    ExitLoop
    Next

    [/autoit][autoit][/autoit][autoit]

    For $j = 0 To $iElements
    $sType = _FFCmd(".forms[" & $i & "].elements[" & $j & "].type")
    Switch $sType
    Case "password"
    ContinueCase
    Case "text"
    ContinueCase
    Case "textarea"
    $sCmd = StringFormat(".forms[%i].elements[%i].value", $i, $j)
    $tmp = _FFCmd($sCmd)
    $sScript &= '_FFCmd("' & $sCmd & "='" & __FFValue2JavaScript($tmp) & "'"")" & @CRLF
    Case "checkbox"
    ContinueCase
    Case "radio"
    $sCmd = StringFormat(".forms[%i].elements[%i].checked", $i, $j)
    $tmp = _FFCmd($sCmd)
    $sScript &= '_FFCmd("' & $sCmd & '=' & __FFB2S($tmp) & '")' & @CRLF
    Case "select-one"
    $sCmd = StringFormat(".forms[%i].elements[%i].selectedIndex", $i, $j)
    $tmp = _FFCmd($sCmd)
    $sScript &= '_FFCmd("' & $sCmd & '=' & $tmp & '")' & @CRLF
    EndSwitch
    Next

    [/autoit][autoit][/autoit][autoit]

    Return $sScript
    EndFunc ;==>_FF_RecordForm

    [/autoit]

    Wenn ich jetzt _FF_recordform() verwende, passiert nichts.

    Habe es auch schon mit global $variable = _FF_recordform() ausprobiert und mir die variable ausgeben lassen, jedoch ohne erfolg.
    Die Variable war immer leer.


    mfg
    xanicel

  • @simon:
    Nun ja dies ist wohl war - und nicht nur MozRepl - man muß sogar FireFox installieren um ihn mit der FF.au3 nutzen zu können.

    MozRepl läßt sich auch automatisch installieren, das ist wohl ein eher nebensächliches Problem.

    Da frag ich mich was wohl passiert wenn MS ihren IE aus zukünftigen Win-Versionen verbannen muß - funktioniert die IE.au3 dann noch?

    Das könnte meiner Meinung nach ein Problem werden ^^
    Denn wenn man ein Programm veröffentlicht, ist eigentlich immer der IE auf dem Rechner des Users installiert.
    Wenn das nicht mehr so ist, dann muss man Skripte irgendwie universal schreiben :o
    Schon schwer.

  • @xanicel:

    Hallo,

    die Funktion in die FF.au3 reinzupacken ist etwas ungünstig, da nach einem Update der FF.au3 die Funktion wieder "weg" ist.
    Speicher die am besten einzeln ins Include-Verzeichnis.

    Verwendet wird die Funktion wie jeder andere Befehl für die FF.au3, also zu erst eine Verbindung zu FF herstellen und dann die Funktion ausführen.

    Du füllt also zuerst das Formular per Hand aus, läßt den Cursor in dem Formular stehen und führst dann folgendes Programm aus:

    [autoit]

    #include <FF.au3>
    #include <_FF_RecordForm.au3>

    [/autoit][autoit][/autoit][autoit]

    _FFConnect() ; wenn FF schon läuft

    [/autoit][autoit][/autoit][autoit]

    If _FFIsConnected() Then
    $sScript = _FF_RecordForm()
    MsgBox(0,"", $sScript)
    EndIf

    [/autoit]

    Wobei das auf der Seite nicht zum gewünschten Ergebnis führt, allerdings folgendes:

    [autoit]

    #include <FF.au3>

    [/autoit][autoit][/autoit][autoit]

    _FFConnect() ; zu FF verbinden, wenn FF schon läuft

    [/autoit][autoit][/autoit][autoit]

    If _FFIsConnected() Then ; wenn die Verbinung zu FF ok dann
    _FFOpenURL("http://mobiledownloads.aol.de/klingeltane-logos/spotlight/63616-herbstfeeling") ; URL öffnen

    [/autoit][autoit][/autoit][autoit]

    _FFClick("payment_option_3", "id") ; Premium SMS anklicken
    _FFSetValueById("creditcard_msisdn", "0170 12345678") ; die Mobilfunknummer
    Sleep(3000) ; Pause damit du siehst was passiert
    _FFFormSubmit("creditcard_form", "id") ; Formular absenden
    EndIf

    [/autoit]

    Grüße

  • [autoit]

    _FFSetValueById("creditcard_msisdn", "0170 12345678") ; die Mobilfunknummer

    [/autoit]

    durch

    [autoit]

    _FFSetValueById("paymentMethodPremiumSMS_msisdn", "0170 12345678") ; die Mobilfunknummer

    [/autoit]

    ersetzt, funktioniert jetzt wunderbar :)

    Danke an alle, die geantwortet und mir geholfen haben.

    mfg
    xanicel