Auf einer Website automatisch ein logen

  • Hi,

    ich bin dabei mir ein AutoIt fürs Einlogen auf einer Website zu schrieben, aber irgendwie klappt es nicht so ganz...

    [autoit]

    ; Run Internet Explorer
    Run("C:\Program Files\Internet Explorer\iexplore.exe https://autoit.de/www.psd-tutorials.de/modules/Forum/ -k")

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

    WinWaitActive("PSD-Tutorials.de - Forum - Windows Internet Explorer")

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

    Sleep (10000)

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

    MouseClick("left", 1414, 355, 1)

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

    Send("Benutzer{TAB}passwort"{ENTER})

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

    ;MouseClick("left", 1522, 375, 1)

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

    ;MsgBox(0, "pause", "fertig")

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

    sleep(30000)

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

    WinClose("PSD-Tutorials.de - Forum - Windows Internet Explorer")

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

    ;navbar_username
    ;navbar_password
    ; Finished!

    [/autoit]


    Das habe ich bis jetzt zusammengebastelt. Es funktioniert halt so amateurhaft wie es auch aussieht ;)

    Ich würde gerne das Feld mit der Benutzernameneingabe direkt an steuern ohne die maus darau ziehen zu müssen und wenn möglich dies erst ausführen, wenn der internet Explorer unten in der Statusleiste "fertig" an zeigt.

    könnte mir bitte jemand helfen?

    2 Mal editiert, zuletzt von qwerik (9. Juni 2009 um 19:28)

  • mh
    Also um die auf die eigabefelder zu gelangen musst du ja

    [autoit]

    send("{TAB}")

    [/autoit]


    Benutzen...

  • das benutz ich ja um vom Benutzernamen auf das Passwort zu springen. Aber wie meinst du das?
    Wenn ich den ie frisch starte, muss ich ja 7oder 8 mal den TAB Befehl senden damit er überhaupt irgendwo auf der WebSeite an kommt... erst geht er ja die ganzen IE Felder durch, wie adressleiste und so

  • Hallo qwerik,

    ich habe mich zwar selbst noch nicht mit den IE-Funktionen beschäftigt, weiss aber dass es hiermit _IEFormElementSetValue einfacher gehen sollte. Schau dir die Beispiele in der Hilfe hierzu an,

    mfg (Auto)Bert

  • HI,
    Du könntest die _IE Functionen benutzen.
    Das würde dann in etwa so ausehen

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #RequireAdmin
    #include

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

    ; Run Internet Explorer
    $IE = _IECreate("www.psd-tutorials.de/modules/Forum/ -k")
    _IELoadWait($IE)
    Sleep (5000)

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

    ;im Quellcode nachschaen wie die id der Felder heist in denen Password und Name reinsoll und bei ***** eingeben
    ;oder anstadt der Id den Namen der Felder und das mit der Funktion _IEGetObjByName

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

    ;~ $name = _IEGetObjByName($IE, "*****")
    ;~ $pass = _IEGetObjByName($IE, "*****")
    $name = _IEGetObjById($IE, "****")
    $pass = _IEGetObjById($IE, "****")

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

    ;Setzt in die Inputbox Gewünschten Namen und Password
    _IEFormElementSetValue($name, "passwort")
    _IEFormElementSetValue($pass, "name")

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

    ;Im Quellcode nach dem Namen des Buttons sehen und wider bei ***** eingeben
    ;wenn es keinen namen gibt schau nach der id und benutze die Function _IEGetObjById

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

    ;$Button = _IEGetObjByName($IE, "*****")
    $Button = _IEGetObjByName($IE, "*****")

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

    ;Klickt auf den Gewählten Button
    _IEAction($Button, "click")

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

    MFG Lotus
    :thumbup:

    Einmal editiert, zuletzt von Lotus (12. Juni 2009 um 23:23)

  • Riesen Dank an Lotus und AutoBert! :)

    im quelltext steht zu dem EinLogen das hier:

    Spoiler anzeigen

    <!-- login form -->

    <form action="http://www.psd-tutorials.de/modules/Forum/login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">

    <script type="text/javascript" src="clientscript/vbulletin_md5.js?v=370"></script>

    <table cellpadding="0" cellspacing="3" border="0">

    <tr>

    <td class="smallfont" style="white-space: nowrap;"><label for="navbar_username">Benutzername</label></td>

    <td><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" id="navbar_username" size="10" accesskey="u" tabindex="101" value="Benutzername" onfocus="if (this.value == 'Benutzername') this.value = '';" /></td>

    <td class="smallfont" nowrap="nowrap"><label for="cb_cookieuser_navbar"><input type="checkbox" name="cookieuser" value="1" tabindex="103" id="cb_cookieuser_navbar" accesskey="c" /><acronym style="border-bottom: 1px dotted #000000; cursor: help;" title="Du bleibst angemeldet, bis du dich selbst abmeldest.">Angemeldet bleiben?</acronym></label></td>

    </tr>

    <tr>

    <td class="smallfont"><label for="navbar_password">Kennwort</label></td>

    <td><input type="password" class="bginput" style="font-size: 11px" name="vb_login_password" id="navbar_password" size="10" tabindex="102" /></td>

    <td><input type="submit" class="button" value="Anmelden" tabindex="104" title="Gib zur Anmeldung deinen Benutzernamen und dein Kennwort in die dafür vorgesehenen Textfelder ein oder klicke auf die 'Registrieren'-Schaltfläche, um ein neues Benutzerkonto anzulegen." accesskey="s" /></td>

    </tr>

    </table>

    <input type="hidden" name="s" value="" />

    <input type="hidden" name="securitytoken" value="71e8a253dea85b7f5caed2ecb81fb0e486b2af11" />

    <input type="hidden" name="do" value="login" />

    <input type="hidden" name="vb_login_md5password" />

    <input type="hidden" name="vb_login_md5password_utf" />

    </form>

    <!-- / login form -->


    wass davon muss ich als namen eingeben? Wenn ich "Anmelden" oder "login"nehme, passiert nix :(

    3 Mal editiert, zuletzt von qwerik (9. Juni 2009 um 18:10)

  • Oder wie könnte ich am Ende "http://www.psd-tutorials.de/modules/Forum/login.php?do=login" ausführen?

  • Hallo

    dies ist mein 1. Versuch den IE zu automatisieren (auf Lotus Beispiel aufbauend):

    Spoiler anzeigen
    [autoit]

    ;#RequireAdmin m.E. nach unnötig
    #include <IE.au3>

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

    ; Run Internet Explorer
    $IE = _IECreate("www.psd-tutorials.de/modules/Forum/ -k")
    _IELoadWait($IE)
    Sleep (5000)

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

    ;im Quellcode nachschaen wie der Name der Felder heist in denen Password und Name reinsoll und bei ***** eingeben
    ;oder anstadt des Namens die ID der Felder und das mit der Funktion _IEGetObjByID

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

    ;~ $name = _IEGetObjByName($IE, "*****")
    ;~ $pass = _IEGetObjByName($IE, "*****")
    $name = _IEGetObjByName($IE, "vb_login_username")
    $pass = _IEGetObjByName($IE, "vb_login_password")

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

    ;Setzt in die Inputbox Gewünschten Namen und Password
    _IEFormElementSetValue($name, "Name")
    _IEFormElementSetValue($pass, "PassWord")

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

    ;Im Quellcode nach dem Namen des Buttons sehen und wider bei ***** eingeben
    ;wenn es keinen namen gibt schau nach der id und benutze die Function _IEGetObjById

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

    $Button = _IEGetObjByName($IE, "Anmelden")

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

    ;Klickt auf den Gewählten Button
    _IEAction($Button, "click")

    [/autoit]


    Name und Passwort funktionieren, wie man an den Button kommt weiss ich noch nicht,

    mfg (Auto)Bert

  • thnx

    Name und PAsswort habe ich auch hin beokmmen. Das mit dem LogIn bekomme ich nicht hin. Ob "Anmelden", "login" oder "do"... bei allen passiert nix

    Kann ich an der Stelle vielleicht "_IEFormSubmit($IE)" irgendwie benutzen?

  • Mit diesen Functionen kanst du sozusagen in der Form Enter Drücken

    $Form = _IEFormGetObjByName ($IE, 3);Die Form(3) auf der die Elemente sind
    _IEFormSubmit ($Form);Sende ok an die Form

    Damit kannst du diech einloggen.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #RequireAdmin
    #include

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

    ; Run Internet Explorer
    $IE = _IECreate("http://www.psd-tutorials.de/modules/Forum/index.php")
    _IELoadWait($IE)

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

    ;~ Durch name das objekt bekommen
    ;~ Der Quellcode für die namen
    ;~ ;~
    ;~ $name = _IEGetObjByName($IE, "vb_login_username")
    ;~ $pass = _IEGetObjByName($IE, "vb_login_password")

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

    ;~ Durch id das Objekt bekommen
    ;~ Der Quellcode für die ID
    ;~ ;~
    $name = _IEGetObjById($IE, "navbar_username")
    $pass = _IEGetObjById($IE, "navbar_password")

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

    _IEFormElementSetValue($name, "name") ;gewünschter name
    Sleep(3000)
    _IEFormElementSetValue($pass, "pasword");gewünschtes password
    Sleep(3000)

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

    $Form = _IEFormGetObjByName ($IE, 3);Die Form auf der die Elemente sind
    _IEFormSubmit ($Form);Sende ok an die Form

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

    ;Eingeloggt

    [/autoit]

    2 Mal editiert, zuletzt von Lotus (12. Juni 2009 um 23:25)

  • Hmm,
    Es hatt im code etwas wegeschnitten.


    Durch name das objekt bekommen
    ;~ Der Quellcode für die namen
    ;~ <td><input type="text" class="bginput" style="font-size: 11px" """"""name="vb_login_username"""""""""""
    ;~ <td><input type="password" class="bginput" style="font-size: 11px" """"""""""name="vb_login_password"""""""""""

    und

    Durch id das Objekt bekommen
    ;~ Der Quellcode für die ID
    ;~ <td><input type="text" class="bginput" style="font-size: 11px" name="vb_login_username" """"""""id="navbar_username"""""""""""
    ;~ <td><input type="password" class="bginput" style="font-size: 11px" name="vb_login_password" """"""""""id="navbar_password"""""""""""

    Beide warianten Functionieren

    MFG Lotus
    :rock:

  • Perfekt! Das mit dem LogIn klappt!!! :-DDD

    nur noch zwei letzte Fragen:
    - wie schliesse ich das Fenster? Mit IEQuit? Wie schreibe ich den Befehl?
    - und wie starte ich den IE maximiert? also nicht als Vollbild, sondern Maximiert?

  • ahhh, schliessen mit

    [autoit]

    _IEQuit($IE)

    [/autoit]


    ;)

    Einmal editiert, zuletzt von qwerik (9. Juni 2009 um 19:29)

  • Wenn du in deinem Scite Fenster auf das geschriebene Wort _IEQuit mit der Maus klickst und dann F1 Drückst kommt die Hilfe zu dieser Function.
    Schreibe in die Klammer das Fenster das du Erstellt hast.
    In unserem Fall dann so:

    _IEQuit($IE)

    Und wenn du das gerne mit Firefox machen willst dann musst du dier die FF.au3 Runterladen.

    MFG
    ;)