UDF > IE >


_IEFormSubmit

Soumet un formulaire donné

#include <IE.au3>
_IEFormSubmit ( ByRef $oObject [, $iWait = 1] )

Paramètres

$oObject Variable objet InternetExplorer.Application, Form
$iWait [optionnel] Spécifie s'il faut attendre que la page soit chargée avant de retourner
    0 = Retourne immédiatement, sans attendre que la page soit chargée
    1 = (par défaut) Attendre que le chargement de la page soit terminé avant de retourner

Valeur de retour

Succès: Aucun retour.
Échec: Retourne 0 ou -1 et définit @error <> 0.
@error: 1 ($_IEStatus_GeneralError) - Erreur générale
2 ($_IEStatus_COMError) - Erreur COM dans une référence d'objet
3 ($_IEStatus_InvalidDataType) - Type de données invalide
4 ($_IEStatus_InvalidObjectType) - Type d'objet invalide
6 ($_IEStatus_LoadWaitTimeout) - Délai de chargement dépassé
8 ($_IEStatus_AccessIsDenied) - Accès refusé
9 ($_IEStatus_ClientDisconnected) - Client déconnecté
@extended: Contient le nombre de paramètres invalides

Remarque

Pour de nombreux formulaires HTML, il n'est pas suffisant d'utiliser _IEFormSubmit() car il y a souvent du code JavaScript personnalisé lié à un événement onClick pour son bouton Submit.
Dans ces cas, vous aurez besoin de simuler un clic sur le bouton Submit au lieu d'utiliser _IEFormSubmit(). Voir l'exemple relatif à l'action "click" de _IEAction() .
En outre, certains traitements de formulaires reposent sur la "valeur" du bouton submit qui est passée avec le reste des données du formulaire (souvent quand il y a plusieurs boutons submit dans le formulaire et qu'ils sont conçus pour déclencher des résultats différents).
Cette fonction ne réussira pas pour une valeur de bouton submit passée. La solution est d'utiliser l'action «clic» de _IEAction() comme ci-dessus.
Si vous rencontrez des problèmes avec l'appel automatique de _IELoadWait() appelée par défaut, mettez le paramètre $iWait à 0 et appelez _IELoadWait() à partir de votre script, en lui passant l'objet InternetExplorer.

En relation

_IEFormElementGetCollection, _IEFormElementGetObjByName, _IEFormGetCollection, _IEFormGetObjByName, _IEFormReset, _IELoadWait

Exemple

Exemple 1

; Ouvre une instance du navigateur avec le formulaire exemple, remplit un champ du formulaire et le soumet

#include <IE.au3>

Local $oIE = _IE_Example("form")
Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oText = _IEFormElementGetObjByName($oForm, "textExample")
_IEFormElementSetValue($oText, "Hey! It works!")
Sleep(2000)
_IEFormSubmit($oForm)

Exemple 2

; Obtient une référence sur un élément spécifique du formulaire et définit ses valeurs.
; Dans ce cas soumet une requête au moteur de recherche Google

#include <IE.au3>

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)

Exemple 3

; Obtient une référence sur un élément du formulaire  et définit ses valeurs.
; Appelez _IELoadWait manuellement si la fonction _IELoadWait échoue.

#include <IE.au3>

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)