Ein angegebenes Formular absenden
#include <IE.au3>
_IEFormSubmit ( ByRef $oObject [, $iWait = 1] )
$oObject | Objektvariable von einem InternetExplorer.Application, Form Objekt |
$iWait | [optional] Gibt an, ob gewartet werden soll, bis die Seite geladen ist, bevor zur Abarbeitung des Skripts zurückgekehrt werden soll. 0 = Sofort zurückkehren, nicht auf das Laden der Seite warten. 1 = (Standard) Vor dem Zurückkehren auf komplettes Laden der Seite warten. |
Erfolg: | nichts |
Fehler: | 0 oder -1 und setzt das @error Flag auf ungleich null |
@error: | 1 ($_IEStatus_GeneralError) - Allgemeiner Fehler 2 ($_IEStatus_COMError) - COM Fehler in der Objektreferenz 3 ($_IEStatus_InvalidDataType) - Ungültiger Datentyp 4 ($_IEStatus_InvalidObjectType) - Ungültiger Objekttyp 6 ($_IEStatus_LoadWaitTimeout) - Ladezeit überschritten 8 ($_IEStatus_AccessIsDenied) - Zugriff verweigert 9 ($_IEStatus_ClientDisconnected) - Verbindung abgebrochen |
@extended: | Nummer des ungültigen Parameters |
Für viele HTML-Formulare reicht es nicht aus, _IEFormSubmit() zu benutzen, da dort oft ein benutzerdefiniertes JavaScript-Ereignis an den Submit-Button des Formulars gebunden ist.
In diesem Fall muss man einen Klick auf den Submit-Button simulieren, anstatt _IEFormSubmit() zu benutzen. Siehe im Beispiel für die "click"-Aktion von _IEAction().
Ebenfalls beruht manchmal die Formularverarbeitung auf dem Wert ("value") des Submit-Buttons, der zusammen mit dem Formularinhalt übergeben wird (oft dann, wenn es mehr als einen Submit-Button in dem Formular gibt und diese als Auslöser für verschiedene Ergebnisse bestimmt sind).
Diese Funktion wird keinen Wert eines Submit-Buttons übermitteln. Die Lösung ist, wie oben das "click"-Ereignis von _IEAction() zu verwenden.
Wenn man Fehler mit dem automatisch von der Funktion aufgerufenen _IELoadWait() hat, setzt man $iWait auf 0 und ruft _IELoadWait() selbst im Skript auf, wobei man das InternetExplorer-Objekt übergibt.
_IEFormElementGetCollection, _IEFormElementGetObjByName, _IEFormGetCollection, _IEFormGetObjByName, _IEFormReset, _IELoadWait
#include <IE.au3>
; Öffnet einen Browser mit dem form-Beispiel; Formularfeld ausfüllen und absenden
Local $oIE = _IE_Example("form")
Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oText = _IEFormElementGetObjByName($oForm, "textExample")
_IEFormElementSetValue($oText, "Hey! Es funktioniert!")
Sleep(2000)
_IEFormSubmit($oForm)
#include <IE.au3>
; Eine Referenz auf ein bestimmtes Formularfeld erhalten und den Wert eingeben.
; In diesem Fall wird eine Suche in der Suchmaschine von Google ausgeführt.
Local $oIE = _IECreate("http://www.google.com")
Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oQuery = _IEFormElementGetCollection($oForm, 4)
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
Sleep(2000)
_IEFormSubmit($oForm)
#include <IE.au3>
; Eine Referenz auf ein bestimmtes Formularfeld erhalten und den Wert eingeben.
; Ruft _IELoadWait manuell auf, falls die Default-_IELoadWait Probleme hat.
Local $oIE = _IECreate("http://www.google.com")
Local $oForm = _IEFormGetCollection($oIE, 0)
Local $oQuery = _IEFormElementGetCollection($oForm, 4)
_IEFormElementSetValue($oQuery, "AutoIt IE.au3")
_IEFormSubmit($oForm, 0)
_IELoadWait($oIE)