Cliquer sur un lien javascript / contrôle de internet explorer / remplir un formulaire automatiquement / robot

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 272 fois - Téléchargée 18 fois


Contenu du snippet

Comment :
-Cliquer sur un lien javascript
-Contrôler de Internet Explorer
-Remplir un formulaire automatiquement

Permet de cliquer sur un lien javascript de la forme "javascript:newFormulaire()" depuis une appli VBA donc VB.. mais aussi de remplir un formulaire et de valider mais d'autres sources existent pour cela (d'ailleur partie reprise de ces sources dont je remercie les auteurs).

Après de multiples parcours sur VBFrance je n'avais pas trouvé de source permettant de cliquer sur un lien javascript autrement que par son numero d'index dans la collection renvoyée et j'ai pu trouver mon bonheur avec la liste des méthodes, collections, propriétés de IE un peu compliqué mais appréciable quand même :D içi -> http://msdn2.microsoft.com/en-us/library/ms537465(VS.85).aspx#

Ps: penser à rajouter les références Microsoft Internet controls et Microsoft HTML Object Library... ça aide plutôt pas mal pour la complétude du code !!

Source / Exemple :


Option Explicit

'Constantes pour l'état d'IE
Private Const READYSTATE_INTERACTIVE = 3
Private Const READYSTATE_COMPLETE = 4

Private Sub RellenarForm()   

Dim IE As InternetExplorer

'Créer un objet internet Explorer
Set IE = CreateObject("InternetExplorer.Application")
        
'le rend visible
IE.Visible = True
'en plein écran
IE.TheaterMode = True

'ouvre une page...
IE.Navigate "http://www.identifietoi.com"

'attend que la page soit chargée
Do While IE.ReadyState <> READYSTATE_COMPLETE 
DoEvents
Loop

'Rempli les champs (idUser et mdp sont les NAMES à repéré dans la source de la page web)
IE.Document.all("idUser").Value = "Jeannot" 'textbox...
IE.Document.all("mdp").Value = "motdepasse" 'textbox...

'Valide le formulaire
IE.Document.Forms(0).submit

'attend que la page soit chargée
Do While IE.ReadyState <> READYSTATE_COMPLETE 
DoEvents
Loop

'Clique sur le lien javascript d'après sont id (dans la source aussi)
IE.Document.Links().namedItem("idlinknewdoc").Click

'attend que la page soit chargée
Do While IE.ReadyState <> READYSTATE_COMPLETE 
DoEvents
Loop

'Boucle parcourant tous les objets de la page jusqu'à celui que l'on souhaite
For i = 0 To IE.Document.all.Length - 1
'ici on test si c'est le contrôle voulu avec un de ses attributs puis on clique
    If IE.Document.all.Item(i).Value = "Cercar" Then
        If err.Number = 0 Then
            IE.Document.all.Item(i).Click
        Else
            err.Clear
        End If
    End If
Next

'attend que la page soit chargée
Do While IE.ReadyState <> READYSTATE_COMPLETE 
DoEvents
Loop

Set IE = Nothing

End sub

Conclusion :


N'hésitez pas pour les remarque c'est ma première source :D

A voir également

Ajouter un commentaire

Commentaires

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
checked = true

me semble
Messages postés
19
Date d'inscription
jeudi 7 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2008

J'ai (enfin) reussit a la faire fonctionner, excellente source.
Savez vous comment on peut cocher un bouton radio d'un formulaire ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
tu dois typer tes variables.... VB2008 est plus contraignant...

pas de
IE.Document.All ....

mais
Dim oDoc As ....
oDoc = IE.Document
oDoc.All ....
Messages postés
19
Date d'inscription
jeudi 7 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2008

Pourtant je reprend exactement le même code :(
J'ai pourtant bien ajouté les 2 références
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
ta variable semble ne pas avoir été typée
Afficher les 30 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.