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

capo666 Messages postés 35 Date d'inscription jeudi 8 septembre 2005 Statut Membre Dernière intervention 1 juin 2008 - 22 avril 2008 à 18:19
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 11 juil. 2008 à 11:19
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 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 juil. 2008 à 11:19
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
11 juil. 2008 à 11:13
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 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 juin 2008 à 17:12
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
19 juin 2008 à 16:53
Pourtant je reprend exactement le même code :(
J'ai pourtant bien ajouté les 2 références
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 juin 2008 à 15:40
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
19 juin 2008 à 15:29
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
2 mai 2008 à 15:41
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
2 mai 2008 à 15:36
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
2 mai 2008 à 14:59
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
30 avril 2008 à 21:56
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
30 avril 2008 à 19:14
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
30 avril 2008 à 00:18
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
29 avril 2008 à 20:54
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
29 avril 2008 à 00:11
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
28 avril 2008 à 22:50
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
25 avril 2008 à 20:25
Oui sa devrais marcher pour la loop
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 avril 2008 à 14:04
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
25 avril 2008 à 13:13
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
25 avril 2008 à 12:04
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
25 avril 2008 à 11:45
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 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 avril 2008 à 10:31
euh....
sur quelle ligne ?
dhcp Messages postés 3 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 25 avril 2008
25 avril 2008 à 10:29
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
24 avril 2008 à 19:01
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
24 avril 2008 à 14:06
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 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2008 à 09:18
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
24 avril 2008 à 00:10
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
23 avril 2008 à 21:14
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 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 avril 2008 à 13:26
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
23 avril 2008 à 12:48
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
22 avril 2008 à 18:19
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
Rejoignez-nous