Webformular Automatisch ausfüllen

  • Guten Tag liebe AutoIT Gemeinde,

    Ich bin neu und hätte mal, ich denke für euch sehr leicht Lösbare Frage, wo mir leider kein Suchbegriff einfällt um selbst auf die Lösung zu kommen. Wie gesagt ich bin Anfänger und somit ist das Script sicher sehr Anfängerhaft zusammengebaut. Programm besitzt Grafische Oberfläche Mit 3 Groupboxen Links mit je 1 Inputfeld drin und Rechts 1 Groupbox mit 2 Radios drin.

    Prob1: Ich habe in einer Groupbox 2 Radios (rechte Seite) Wenn programm startet Sind die ersten beiden Inputs auf der linken Seite enabled und das 3te nicht. Drückt man nun Radiobutton2 ändert sich der Status von Input3 von Disabled auf Enabled. Drückt man nun Radiobutton1 soll Input3 wieder von Enabled zu Disabled. Im ganzen funktioniert dies, nur wenn ich auf Disabled wieder gedrückt habe und mit der Maus ins Input3 fester klicke darf man da reinschreiben

    Case $Radio1
    GUICtrlCreateInput("Ohne SMS", 16, 120, 137, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Case $Radio2
    $Channel = GUICtrlCreateGroup("Mit SMS", 8, 104, 153, 49)
    GUICtrlCreateInput("", 16, 120, 137, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

    Prob 2: Die Eingaben aus Input1 und Input2 sollen via ControlSetText dann an eine Webseite übergeben werden.

    $handle = WinGetHandle("mufa - Free SMS kostenlos, Handy-Spiele (Java-Games), Klingeltöne & Logos - Mozilla Firefox", "")
    ControlSetText($handle,"",2,"Nickname")

    Wie kann ich Autoit sagen das er von der Groupbox1 die Texteigabe vom Texteinagebfeld nun übergeben soll?

    Ich bitte darum mir vorerst nur Hilfreiche suchbegriffe zu geben um den (Denk)Fehler selbst zu beseitigen damit man auch was dabei lernt:-P


    Mit freundlichen Grüßen


    PS: Miene Form

    $Form1_1 = GUICreate("Form1", 328, 161, 193, 125)
    $Password = GUICtrlCreateGroup("Password", 8, 56, 153, 49)
    GUICtrlCreateInput("", 16, 72, 137, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup("SMS", 8, 104, 153, 49)
    GUICtrlCreateInput("", 16, 120, 137, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Nickname = GUICtrlCreateGroup("Nickname", 8, 8, 153, 49)
    GUICtrlCreateInput("", 16, 24, 137, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Modus", 168, 8, 153, 65)
    $Radio1 = GUICtrlCreateRadio("Radio1", 176, 24, 17, 17)
    $Label1 = GUICtrlCreateLabel("ohne SMS", 200, 24, 104, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Radio2 = GUICtrlCreateRadio("Radio1", 176, 48, 17, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Label2 = GUICtrlCreateLabel("mit SMS", 200, 48, 112, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Starten", 168, 105, 153, 15, 0)
    $Button2 = GUICtrlCreateButton("Anleitung", 168, 121, 153, 15, 0)
    $Button3 = GUICtrlCreateButton("Beenden", 168, 137, 153, 15, 0)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

  • Im ganzen funktioniert dies, nur wenn ich auf Disabled wieder gedrückt habe und mit der Maus ins Input3 fester klicke darf man da reinschreiben


    Da erhält der oft benutzte Linktext "Klick mich fest" gleich ne andere Bedeutung ;)

    Schreib bei den nächsten Posts den AutoIt-Quelltext bitte in ein Autoit-Feld ([Blockierte Grafik: http://www.autoit.de/wcf/icon/wysiwyg/insertAutoItM.png] in der Quellcode-Ansicht) das verbessert die Lesbarkeit ungemein und man hat gleich die Darstellung wie man sie aus Scite kennt.

    Zitat

    Prob 2: Die Eingaben aus Input1 und Input2 sollen via ControlSetText dann an eine Webseite übergeben werden.

    [autoit]

    $handle = WinGetHandle("mufa - Free SMS kostenlos, Handy-Spiele (Java-Games), Klingeltöne & Logos - Mozilla Firefox", "")
    ControlSetText($handle,"",2,"Nickname")

    [/autoit]


    Wie kann ich Autoit sagen das er von der Groupbox1 die Texteigabe vom Texteinagebfeld nun übergeben soll?


    Websiten haben keine Controls da musst du also mit MouseClick, Send und Co arbeiten (oder den Quelltext der Website zerpflücken und ganz auf den Browser verzichten)


    Für dein anderes Prob bräuchte ich as ganze Script.

  • Du arbeitest zwar mit Firefox, aber so gibst du die Daten mit dem IE ins Webformular ein:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>

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

    $Nummer = '12345'
    $Passwort = 'pwd'

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

    $oIE = _IECreate ("http://www.mufa.de/")
    $oForm = _IEFormGetCollection($oIE, 0)
    $oNummer = _IEFormElementGetObjByName($oForm, 'login_username')
    $oPasswort = _IEFormElementGetObjByName($oForm, 'login_password')
    _IEFormElementSetValue($oNummer, $Nummer)
    _IEFormElementSetValue($oPasswort, $Passwort)
    _IEFormSubmit($oForm)

    [/autoit]
  • Vielen Dank durch Link klicken hat es geklappt mit dem QuellcodeKomplett posten werde ich mir merken, wobei ihr ja recht habt ohne Geld kann man ja auch nix kaufen.

    Einmal editiert, zuletzt von Asatru (8. Januar 2009 um 11:33)

  • normalerweise sehen inputfelder in html so aus:

    <input type="text" name="name_des_inputs" value="Wert" />

    Leider fällt mir die Funktion grad net ein aber die findest du bestimmt schnell^^
    Also du kannst mit einer funktion und mit dem name des inputs das Formularfeld füllen

    Hat bei mir leider oft nicht geklappt deshalb hier ansatz 2

    Du kannst dir alle Controls die diese Seite hat in ein Array speichern, dann musst du nur noch schauen welcher index für welches formular steht, solange keine weiteren formularfelder etc hinzukommen oder entfernt werden funktioniert das prima

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D