[R] Valider un formulaire via _IEFormSubmit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
benzo
Niveau 4
Niveau 4
Messages : 60
Enregistré le : mar. 07 août 2007 07:45
Status : Hors ligne

[R] Valider un formulaire via _IEFormSubmit

#1

Message par benzo »

Bonjour,

Un grand classique , je cherche à valider un formulaire d'authentification automatiquement .
Les valeurs "login" et "password" s'inscrivent correctement dans les champs input.
Mais je n'arrive pas à faire le "submit "..

Code : Tout sélectionner

Local $oIE = _IECreate($url)
$oForm = _IEFormGetObjByName ($oIE, "ginbox")
$username = _IEGetObjByName ($oIE,"login")
$password = _IEGetObjByName ($oIE,"password")
_IEFormElementSetValue ($username,$name)
_IEFormElementSetValue ($password,$pwd)
sleep(300)
_IEFormSubmit ($oForm)
Code source html concerné :

Code : Tout sélectionner

<div id="ginbox">
          <form action="login.php" method="post">
            <fieldset>
              <legend>Authentification</legend>
              <label>Identifiant</label>
              <input name="login" type="text"/><br/>
              <label>Mot de passe</label>
              <input name="password" type="password"/><br/>
              <a href="password_reinit.php">J'ai oublié mon mot de passe</a>
              <input type="submit" class="minisub" value="Se connecter"/><br/>
            </fieldset>
          </form>
        </div>
Merci d'avance pour votre aide .
Modifié en dernier par benzo le mar. 17 mai 2016 15:14, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [...] Valider un formulaire via _IEFormSubmit

#2

Message par orax »

Est-ce qu'il y a quelque chose qui s'affiche dans la console ? Erreurs, avertissements ?
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
benzo
Niveau 4
Niveau 4
Messages : 60
Enregistré le : mar. 07 août 2007 07:45
Status : Hors ligne

Re: [...] Valider un formulaire via _IEFormSubmit

#3

Message par benzo »

--> IE.au3 T3.0-2 Warning from function _IEFormGetObjByName, $_IESTATUS_NoMatch
--> IE.au3 T3.0-2 Error from function _IEFormSubmit, $_IESTATUS_InvalidDataType


En fait, je ne sais pas trop si je récupère le bon nom du Form ? (divid =ginbox?)

$oForm = _IEFormGetObjByName ($oIE, "ginbox")
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [...] Valider un formulaire via _IEFormSubmit

#4

Message par jguinch »

Effectivement, $oForm ne correspond pas au formulaire.
Utilise _IEFormGetCollection à la place
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Valider un formulaire via _IEFormSubmit

#5

Message par mikell »

Tu peux aussi l'essayer comme ça

Code : Tout sélectionner

$oInputs = _IETagNameGetCollection($oIE, "input")
For $oInput In $oInputs
    If $oInput.name == "login" Then $oInput.innertext = $username
    If $oInput.name == "password" Then $oInput.innertext = $password
    If $oInput.type == "submit" Then 
        _IEAction($oInput, "focus")
        _IEAction($oInput, "click")
        ExitLoop
    EndIf
Next
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
benzo
Niveau 4
Niveau 4
Messages : 60
Enregistré le : mar. 07 août 2007 07:45
Status : Hors ligne

Re: [...] Valider un formulaire via _IEFormSubmit

#6

Message par benzo »

@jguinch
J'avais essayé avec _IEFormGetCollection mais ca ne m'avait rien renvoyé comme infos

@mikell , ton code fonctionne mikkel euh nikel :wink:
Juste pour savoir le _IEAction($oInput, "focus") est obligatoire?

Merci à tous les deux.
Répondre