Auf ein Objekt einer Seite "gehen" bzw. "klicken"

  • hi,
    also mein Problem ist das ich es nicht hinbekomme auf einer Seite auf ein Input-feld einen Klick zu simulieren
    ich möchte das nicht mit Mouseclick machen damit es bei jeder Bildschirmauflösung funktioniert

    Also wenn ich beispielsweise auf der Startseite von SchülerVZ bin dann soll er zum Input-Feld "Passwort" springen
    ich habs jetz mit _IEAction und _IEformsubmit ausprobiert aber ohne Erfolg irgendwas mach ich falsch aber keine ahnung was


    mfg Lazkopatdragon

  • also hab jetz den FF Page Analyzer gefunden und installiert hab auch die FF.au3 in den Include Ordner reingetan und mozRepl installiert
    das Programm funktioniert aber Irgendwie nicht ka wieso
    kann mir denn nicht einfach Irgendjemand erklären wie man das macht dass das Programm in das gewünschte Input-Feld geht ?(

  • is doch eig gar nich so schwierig mit dem IE :P

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>
    $schuelervz = _IECreate("http://www.schuelervz.net")
    $loginForm _IEFormGetObjByName($schuelervz, "formname")
    $email = _IEFormElementGetObjByName($loginform, "feldname") ;formname un feldname muss du im quellcode raussuchen^^
    _IEFormElementSetValue($email, "email-adresse")
    ;un dat ganze genauso für dat passwort

    [/autoit]
  • Wie der Analyzer geht nicht? Ist MozRepl gestartet?
    Irgendwelche Fehlermeldungen in Editor Console?

    Also bei mir spuckt FF-Page-Analyzer auf der Seite folgendes Script aus:

    Spoiler anzeigen
    [autoit]

    $sUserName = ""
    $sPassWord = ""
    $Socket = _FFConnect()
    If $Socket > -1 Then
    _FFOpenURL($Socket, "http://www.schuelervz.net/")
    _FFSetGet($Socket,".forms[0].elements[1].value='" & $sUserName & "'")
    _FFSetGet($Socket,".forms[0].elements[2].value='" & $sPassWord & "'")
    _FFFormSubmit($Socket,0)
    EndIf

    [/autoit]

    sieht halt komisch aus, da automatisch generiert :D

  • fü die opitin findes du wenn dz ,wie von stilgaR BESCHRIEBEN ; WEN MAN IM FF PAGE ANNUNTERTOOLS SCHAUTS
    BEKOMME DAS WIE MEIN VORGANG ; WENN DIER FUCHS NICHT PAS SS IM IE IST ÄHNLCHE :rock:

  • syne
    was muss ich bei Formname und bei Feldname reinschreiben???

    also die stelle im Quelltext die ich brauche is ja die hier:

    <fieldset>
    <label for="Login_email">E-Mail</label>
    <input onfocus="this.hasfocus='yes';" class="text" type="text" name="email" id="Login_email" value="" />

    <label for="Login_password">Passwort</label>
    <input onfocus="this.hasfocus='yes';" class="text" type="password" name="password" id="Login_password" value="" />
    <table>

    aber was ist jetz Formname und was ist Feldname?


    Stilgar
    ne hab vergessen MozRepl zu starten dachte das wäre etwas was man nicht starten muss

  • #include <IE.au3>
    $oIE = _IECreate ("http://www.google.de")
    $oForm = _IEFormGetCollection ($oIE, 0)
    $oQuery = _IEFormElementGetCollection ($oForm, 1)
    _IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
    _IEFormSubmit ($oForm)
    ruf mal goolgle mit den firefox auf und analiersiere es dann siehts du wo was kinn kommt
    ps das ist auder hifle

  • Minimallösung mit FF wäre:

    Spoiler anzeigen
    [autoit]

    #include <FF.au3>

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

    $Socket = _FFStart("http://www.schuelervz.net/")
    _FFSetValueByID($Socket,"Login_email","name@irgendwas.mail")
    _FFSetValueByID($Socket,"Login_password","passwort")
    _FFFormSubmit($Socket)

    [/autoit]
  • also das mit Firefox funktioniert aber wie mach ich das jetz mit Internet Explorer wie muss das da aussehen
    ich hab immer noch kein Plan was Formname und was Feldname ist ?(

  • Spoiler anzeigen

    <form id="Loginbox" method="post" action="https://secure.schuelervz.net/Login">
    <fieldset>
    <label for="Login_email">E-Mail</label>
    <input onfocus="this.hasfocus='yes';" class="text" type="text" name="email" id="Login_email" value="" />
    <label for="Login_password">Passwort</label>
    <input onfocus="this.hasfocus='yes';" class="text" type="password" name="password" id="Login_password" value="" />


    du has das form - tag am anfang noch vergessn..
    also leider hat das form tag keinen name - attribut (fett) deshalb muss man das form - tag über das id - attribut abrufen (kursiv)
    die eingabefelder haben ein name attribut.. man kann sie also direkt aufrufen..

    [autoit]


    $loginForm = _IEGetObjById($schuelervz, "Loginbox")
    $email = _IEFormGetObjByName($loginForm, "email")
    _IEFormElementSetValue($email, "deine@emailadresse.de")

    [/autoit]
  • kann es sein das die FF.au3 nicht mit der neuen Firefox version funktioniert bekomme immer eine Fehlermeldung in Autoit wenn ich mich versuche mit den Originaldaten einzuloggen
    hier die Fehlermeldung:

    Spoiler anzeigen


    __FFStartProcess: ""C:\Programme\Mozilla Firefox\firefox.exe" -new-window "http://www.schuelervz.net/" -repl 4242
    _FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 2
    _FFConnect: AutoIt: 3.3.0.0
    _FFConnect: FF.au3: 0.4.1.4b-8
    _FFConnect: IP: 127.0.0.1
    _FFConnect: Port: 4242
    _FFConnect: Delay: 2ms
    _FFConnect: Socket: 1684
    __FFSend: navigator.userAgent
    __FFRecv: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.5 (de) (TL-FF)
    _FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.5 (de) (TL-FF)
    _FFSendJavaScripts: Sending functions to FireFox ........... done
    _FFLoadWait: . loaded in 32ms
    __FFSend: (content.document.getElementById('Login_email') != null ? content.document.getElementById('Login_email').value='e-mail' : '_FFSetValueById_Err:1684');
    __FFRecv: e-mail
    __FFSend: (content.document.getElementById('Login_password') != null ? content.document.getElementById('Login_password').value='passwort' : '_FFSetValueById_Err:1684');
    __FFRecv: passwort
    __FFSend: try{content.document.forms[0].elements.length;}catch(e){"_FFFormSubmit_Error";};
    __FFRecv: 8
    __FFSend: try{content.document.forms[0].submit();}catch(e){"_FFFormSubmit_Error";};
    __FFRecv:
    _FFLoadWait: ... loaded in 1078ms
    >Exit code: 0 Time: 26.117


    oder was mach ich falsch???
    ich hab das so gemacht wie Stilgar es geschrieben hatt
    also so:

    [autoit]

    Func _sendschuelervz()
    $Socket = _FFStart("http://www.schuelervz.net/")
    _FFSetValueByID($Socket,"Login_email","e-mail")
    _FFSetValueByID($Socket,"Login_password","passwort")
    _FFFormSubmit($Socket)
    EndFunc

    [/autoit]
  • Hallo,

    Funktioniert nach wie vor:

    Der Consolen Ausgabe nach, tritt da auch kein Fehler auf. Dem letzten
    _FFLoadWait: ... loaded in 1078ms
    nach zu urteilen, wird auch die Seite abgeschickt und neu geladen.

    Ich lande mit dieser Funktion immer auf der Seite mit der Fehlermeldung "Falsche E-Mail-Adresse oder falsches Passwort!"
    Was passiert bei dir?

    Grüße
    Stilgar

  • bei mir passiert das gleiche wenn ich bei e-mail und passwort meine richtigen Daten eingebe funktioniert es nicht
    dann kommt die fehlermeldung das mein Passwort oder meine E-mail Adresse falsch wäre

  • Hat es schon mal funktioniert?
    Per Hand und auf "Einloggen" klicken bzw. "Enter" funktioniert?

    Auch schon mal eine andere Absende- Möglichkeit ausprobiert?
    z.B.:

    Spoiler anzeigen
    [autoit]

    _FFFormSubmit($Socket,0,"index","click")
    ; oder
    _FFFormSubmit($Socket,0,"index","enter")
    ; oder
    _FFClick($Socket,"login","name")

    [/autoit]


    kann es Mangels Zugang leider nicht probieren ...

  • Habs jetz mit den anderen Möglichkeiten auch ausprobiert habs einmal hinbekommen das er auf Einloggen "geklickt" hatt aber da kam dann wieder das ich ein Falsches Passwort oder E-mail Adresse eingegeben hätte. :pinch:
    Ich könnte dich ja mal bei SchülerVZ Einladen nur damit wir das dann rausbekommen was genau gemacht werden muss.
    Ich check das nicht. ?(

  • Wenn ich es per Hand abschicke funktioniert es.
    in meiner E-mail Adresse kommt nur -(Bindestrich) vor und halt @ und .(Punkt)
    aber das gibt er ja im Fomular alles richtig ein.
    Im Passwort sind keine Sonderzeichen nur Buchstaben und Zahlen

  • [autoit]

    #include <IE.au3>

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

    $IE = _IECreate("www.SchuelerVZ.net")
    $Mail = _IEGetObjById($IE, "Login_email")
    _IEFormElementSetValue($Mail,"Deine E-mail")
    $Password = _IEGetObjById($IE, "Login_password")
    _IEFormElementSetValue($Password,"Dein Passwort")
    $Einloggen = _IEFormGetCollection($IE,0)
    _IEFormSubmit ($Einloggen)

    [/autoit]

    Edit: Oh sry dachte du bräuchtest auch eins für IE... naja hab ich wohl falsch verstanden ^^ hmm komisch das es nicht Funktioniert... Hab leider auch kein zugriff auf die Seite um es auszuprobieren... hast du schonmal überprüft, ob das Script die E-Mail adresse richtig eingegeben hat ?

    Probier mal aus, dass er nur die E-mail eintippt und du dann manuell password und einloggen. Das gleiche machst du dann mit dem Password nochmal.

    Einmal editiert, zuletzt von SiLenCa (24. März 2009 um 18:17)

  • thx Silenca aber ich brauch das für Firefox ;)
    Edit: Das von Silenca Funktioniert auch nicht da kommt auch das ich ein falsches Passwort oder E-Mail Adresse eingegeben hätte