IE.au3 Formulare

    • Offizieller Beitrag

    Hallo jetzt ich auch mit der IE.au3. *gg*
    Kann mir jemand verraten, wie ich aus nem Formular, das wie folgt aufgebaut ist:


    Meine Daten eingegeben (was schon läuft über die _IEGetObjByName Funktion) aber vorallem wie ich es abschicken kann, wenn doch der Login Button keinen Namen trägt und ich nicht einfach Enter drücken kann um es abzuschicken?

  • Ich denke hier kann ich sogar helfen :-)))

    PHP
    $oIEMain = _IECreate("http://deinepage.com",0,0)
    	$oForm = _IEFormGetCollection ($oIEMain, 0)
    	$userquery = _IEFormElementGetCollection ($oForm,0)
    	$passquery = _IEFormElementGetCollection ($oForm,1)
    	_IEFormElementSetValue ($userquery, "bla")
    	_IEFormElementSetValue ($passquery, "blabla")
    	_IEFormSubmit($oForm)

    Grüsse
    CoDeX2k

  • Hi Gun-Food,

    das geht mit _IEFrameGetObjByName

    Code
    #include <IE.au3>
    Dim $oIE = _IECreate()	;InternetExplorer-Object erzeugen
    _IENavigate($oIE, "http://www.deineseite.de",1)	;Eine bestimmte Seite wird abgerufen
    $oFrame = _IEFrameGetObjByName($oIE, "hauptframe") ;Frame-Objekt erzeugen
    if not (@error = 1) then ;wenn kein Fehler aufgetreten ist...
    	Dim $oElement = _IEGetObjByName ( $oFrame, "all203") ;Object für das Feld erzeugen.
    	if (@error = 0) then
    		_IEFormElementSetValue ( $oElement, "autoit" ) ;autoIt in das Feld schreiben
    	EndIf
    Endif
  • Code
    <td id="login-form" style="vertical-align:top;">
         	<form id="login_easy" name="login_easy" onsubmit="debug=xajax_content('0','login','',xajax.getFormValues('login_easy'),'0',''); return false;" style="display:inline;" action=""> <table>  <tr><td>Nickname:</td><td><input name="1b57e80188d66db03d59e47d2f06dc84" maxlength="20" size="10"></td></tr>  <tr><td>Passwort:</td><td><input type="password" name="528ebbc0a9b5e908b4d2848b26c0c016" size="10"></td></tr>  <tr><td colspan="2" style="text-align:right;"><input type="submit" value="  Login  "></td></tr> </table>
    			   <div id="status_login" style="display:absolute;width:160px;position:relative;"><br></div></form><form id="saver" name="saver" action=""> <input type="hidden" id="act_modul" name="modul" value="main"> <input type="hidden" id="act_action" name="action" value="start"> <input type="hidden" id="act_xtra" name="xtra" value=""> <input type="hidden" id="act_outgame" name="outgame" value="1"></form>
       	</td>

    Wie bekomme ich nun hier den Nick und das Passwort wegeschickt ? wäre nett wenn jemand hilft und dann noch eine Frage wie finde ich raus ob das in Frame 1 ,2 oder 3 liegt?

    Gruß

  • hättest nicht nen neuen thread erstellen können?
    naja egal...lösung für das hauptproblem ist:

    [autoit]

    #include <IE.au3>
    $oIEMain = _IECreate("http://localhost/au.php")
    $oForm = _IEFormGetCollection ($oIEMain, 0)
    $userquery = _IEFormElementGetCollection ($oForm,0)
    $passquery = _IEFormElementGetCollection ($oForm,1)
    ;Alternativ kannst du die inputfelder auch mit namen ansprechen:
    ;$userquery = _IEFormElementGetCollection ($oForm,"1b57e80188d66db03d59e47d2f06dc84")
    ;$passquery = _IEFormElementGetCollection ($oForm,"528ebbc0a9b5e908b4d2848b26c0c016")
    ; so in etwa...vermutlich ist es andersrum einfacher
    _IEFormElementSetValue ($userquery, "bla")
    _IEFormElementSetValue ($passquery, "blabla")
    ;nur das dazugekommen
    $oForm.fireEvent("onsubmit")
    _IEFormSubmit($oForm)

    [/autoit]


    mhh wenn die frames "zufällig" benannt sind gibts eigentlich nur die möglichkeit jeden frame einzeln durchzugehen, versuchen die entsprechende framecollection zu erhalten....wenn die anderen frames nicht so aufgebaut sind, sollte es nur bei einem funktionieren und bei den anderen jeweils einen fehler ergeben (@error oder ähnliches....)

    snoozy

  • naja neuen thread ^^ dachte halte die mal zusammen ^^ kann ja nicht schaden da sich alles um das selbe dreht ;)

    Habe den Script mal so ausgeführt browser geht offen ^^ wie gewünscht nur wird noch nix eingetragen da muß ich nochmal schauen ... Aber Danke.