CLIQUER SUR UN LIEN JAVASCRIPT / CONTRÔLE DE INTERNET EXPLORER / REMPLIR UN FORM

Signaler
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008
-
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46366-cliquer-sur-un-lien-javascript-controle-de-internet-explorer-remplir-un-formulaire-automatiquement-robot

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

me semble
bandifull
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 ?
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
tu dois typer tes variables.... VB2008 est plus contraignant...

pas de
IE.Document.All ....

mais
Dim oDoc As ....
oDoc = IE.Document
oDoc.All ....
bandifull
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
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
ta variable semble ne pas avoir été typée
bandifull
Messages postés
19
Date d'inscription
jeudi 7 décembre 2006
Statut
Membre
Dernière intervention
11 juillet 2008

Bonjour à tous !
Ceci ne marche pas chez moi
IE.Document.all("idUser").Value = "Jeannot" 'textbox...
En effet, apres Document, j'ai seulement Equals, GetHashCode, GetType ReferenceEquals ou ToString
Ceci est surement du à VB express 2008. Quelqu'un a t-il une idée pour trouver l'équivalent ?
cernf
Messages postés
5
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008

Completement génial, bien vu !!
Merci, a+
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

Bon j'ai trouvé l'erreur. enfait, l'erreur affiche a cause que le login et password est dans une frame donc pour remplir les deux zone de texte il faut que tu sois dans la page de la frame

il suffit juste de mettre le url de la frame http://www.boursedirect.fr/frmTop.php

Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 1
IE.Navigate ("http://www.boursedirect.fr/frmTop.php")
Do While IE.readyState <> 4
Loop
IE.document.All("login").Value = "ton_identifiant"
IE.document.All("password").Value = "ton_mot_de_passe"
IE.document.Forms(0).submit

j'ai tester et sa marche
cernf
Messages postés
5
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008

C'est bien comme ça que je faisais avant (ce qui marche très bien sur yahoo par ex), mais l'erreur 91 apparait toujours pour ce site.
Pour info voilà ma macro :

Sub BD()
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 1
IE.Navigate ("http://www.boursedirect.fr/")
Do While IE.readyState <> 4
Loop
IE.document.all("login").Value = "ton_identifiant"
IE.document.all("password").Value = "ton_mot_de_passe"
IE.document.forms(0).submit
End Sub

ça marche bien chez toi? Sinon il me manque peut etre une référence, mais laquelle!?
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

pour te connecter essaie ceci:

IE.Document.all("login").Value = "ton_identifiant"
IE.Document.all("password").Value = "ton_mot_de_passe"
IE.Document.forms(0).submit
cernf
Messages postés
5
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008

Ok, voilà l'adresse : http://www.boursedirect.fr/
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

Si tu pourrais nous donner le lien du site en question ont pourraient t'aider plus facilement je crois.
cernf
Messages postés
5
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008

C'est possible et pourtant le code source a l'air de lui en donner un... voilà un extrait :





Si ça vous inspire + que moi, merci d'avance
mzfr
Messages postés
17
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2008

Il me semble que l'erreur 91 apparait quand il n'y a pas l'objet que l'on indique, l'inputbox n'a peut etre pas de name ?
cernf
Messages postés
5
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
2 mai 2008

Bonjour à tous,
avec des pages comme yahoo ou google, ça marche très bien pour se logger :
'IE.Document.all("idUser").Value = "Jeannot"
Mais je tombe sur une erreur 91 quand je teste ça sur d'autres pages...
Même chose avec un code du genre :
'Set x = IE.document.getelementsByName("login")
'x.Item(0).Value = "Jeannot"
Quel est le souci à votre avis?
Merci d'avance !!
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

Oui sa devrais marcher pour la loop
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
l'aide ne comporte donc pas ses mots clé ^^

peux pas te dire : j'ai pas l'aide, je regarde sur le site MSDN
dhcp
Messages postés
3
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
25 avril 2008

FM : Renfield le 25/04/2008 10:31:34
euh....
sur quelle ligne ?

En fait, dans environnement de dev, lorsque tu surligne un mot clé, la touche F1 appelle l'aide sur ce mot clé.
Mais pour les objet méthodes et propriétés de "Microsoft HTML Object Library" et "Microsoft Internet Controls" F1 me ramène "Mot clé introuvable".
mzfr
Messages postés
17
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2008

i = 0
(Capo666) Dites moi ce que vous pensez de ça :

object.Click
'attend que la page soit chargée
Do While IE.ReadyState <> READYSTATE_INTERACTIVE Or IE.ReadyState <> READYSTATE_LOADING
DoEvents
i = i + 1
If i > 30000 Then
Exit Do
End If
Loop

Do While IE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
mzfr
Messages postés
17
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2008

Ah oui, merci DHCP, c'est auand même beaucoup plus pratique avec la complétude du code...hihi honte à moi !!
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
euh....
sur quelle ligne ?
dhcp
Messages postés
3
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
25 avril 2008

Merci Renfield
Désormais la complétude est assurée, mais je n'ai toujours pas d'aide en ligne : "Mot clé introuvable".
Si tu as une idée
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

oui et que sa va faire un erreur car sa attent pas que la page soit charger
mzfr
Messages postés
17
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2008

Ahh ouii ouii Capo666, je crois que je viens de comprendre ce aue tu veux dire, c'est à dire aue lorsque tu cliques sur un bouton IE est déjà dans l'état 4 (readystate Complete)
ce qui veut dire que le test de boucle passerai directement ???
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
DHCP => ca vient du fait qu'il te faut ajouter la reference "Microsoft HTML Object Library"
et le composant "Microsoft Internet Controls"

de plus je vois:
Dim IE As Object
qu'il faudra modifier en :
Dim IE As InternetExplorer
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

Observe bien :
Quand tu appelles une URL (avec Navigate), le ReadyState passe par les états suivants :
Uninitialized, Loading, Interactive, Complete
Puis, quand tu cliques sur un bouton, les états sont :
Interactive, Complete

Donc, il te suffit de créer autant de boucle Do-Loop que tu as d'état à voir défiler :
Quand tu appelles l'URL, ce qui t'intéresse, c'est l'état final :
Do While ie.ReadyState <> 4
DoEvents
Loop
Ensuite, tu sais que tu vas cliquer sur un bouton, il faut attendre qu'apparaissent successivement Interactive, puis Complete :
Do While ie.ReadyState <> 3
DoEvents
Loop
Do While ie.ReadyState <> 4
DoEvents
Loop

voila
dhcp
Messages postés
3
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
25 avril 2008

Propre et élégant!

J'ai un petit souci, sous VBA access le code fonctionne parfait, mais je n'ai pas la complétude des méthodes et propriétés, ni d'aide en ligne sur les objet IE.
Par exemple pour "IE.ReadyState" ReadyState est inconnu de l'aide et quand je tape "IE." l'environnement de dev ne propose aucune méthodes objets ou propriétés.

Merci par avance
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
3, 4 fichtre !que c'est parlant...

Membres de SHDocVwCtl.tagREADYSTATE :
Const READYSTATE_INTERACTIVE = 3
Const READYSTATE_COMPLETE = 4

leur doc ( http://msdn2.microsoft.com/en-us/library/bb268229(VS.85).aspx ) nous dit:
READYSTATE_INTERACTIVE
Object is interactive, but not all of its data is available.
READYSTATE_COMPLETE
Object has received all of its data.

-----------------

a lire également:
http://groups.google.com/group/microsoft.public.inetsdk.programming.dhtml_editing/browse_thread/thread/f54cc97916235519

----------

en somme, je ne comprends pas le bien fondé de ta remarque, Capo666
mzfr
Messages postés
17
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
10 juillet 2008

Ca ne reviens pas au mème puisque quand readystate=4 c'est que la page est complétement chargée ?
capo666
Messages postés
35
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
1 juin 2008

Ta une petite erreur , quand tu click sur un bouton tu dois faire cela :

Do While IE.ReadyState <> 3
DoEvents
Loop

Do While IE.ReadyState <> 4
DoEvents
Loop