Page 1 sur 1
[R] Utilisation IE.au3
Posté : lun. 02 mars 2015 10:58
par raptorzil
Bonjour à tous,
Je viens sur ce forum afin que les grands esprits qui s'y trouvent m'aiguille devant mon problème.
Voici mon code.
Code : Tout sélectionner
#include <IE.au3>
#include <Date.au3>
#include <MsgBoxConstants.au3>
;____Lancer IE avec la page de test
Local $oIE = _IECreate("C:\temp\test.htm")
Sleep(5000)
Local $hTimer = TimerInit()
Local $oSubmit = _IEGetObjByName($oIE, "Bouton6")
If IsObj($oSubmit) Then
Local $test = _IEAction($oSubmit, "click")
Sleep(2000)
;MsgBox($MB_SYSTEMMODAL, "Click", $test)
else
MsgBox($MB_SYSTEMMODAL, "Test recup bouton 6", $oSubmit)
EndIf
Local $fDiff = TimerDiff($hTimer)
;MsgBox($MB_SYSTEMMODAL, "Time Difference", $fDiff)
_IEQuit($oIE)
Ce code vise bien un bouton qui se trouve sur une page html défini comme ceci:
Code : Tout sélectionner
<INPUT ID = "imp" TYPE = "BUTTON" VALUE = "Imprimer vignette"
NAME = "Bouton6" OnClick="">
Le problème étant que je n'arrive pas à récuperer l'objet en prenant par le 'name'.
Quelqu'un saurait pourquoi cela ne fonctionne pas?
merci d'avance.
Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 11:42
par timmalos
Il se peut que votre page contienne des Frames?
Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 11:50
par raptorzil
Voulez vous que je poste la page entière? du moins le code html?
Je pense éffectivement qu'il y a des frames. (fin du code de la page: </noframe>) plus les déclarations <a>
► Afficher le texte
Code : Tout sélectionner
<html>
</HEAD>
<BODY>
<!-- Création de la page HTML -->
<FORM>
<A NAME="Debut"></A>
<CENTER><B><FONT FACE = "arial" SIZE=6 COLOR=#0055CC>
Outils de Test<BR>
du composant COM d'accès aux SIG
</FONT><BR></B></CENTER>
<!-- Ajout d'un champ caché pour stocker une chaine à passer au composant COM -->
<INPUT TYPE= "HIDDEN" NAME= "editBufferCache" >
<HR>
<UL><B>MENU GENERAL</B><P>
<LI><A HREF="#Document"> Impression des documents et des livrets</A>
<LI><A HREF="#Piste"> Gestion des pistes magnétiques</A>
<LI><A HREF="#Vignette"> Gestion des vignettes</A>
<LI><A HREF="#Identite"> Demande d'identification</A>
<LI><A HREF="#Emulation"> Choix de l'émulation</A>
<LI><A HREF="#Journal"> Journal de bord</A>
<LI><A HREF="#Degrade"> Modes dégradés</A>
</UL>
<!-- Ajout de la case à cocher de choix buffer optimisé ou non -->
<HR>
<B><U><I>Options générales :</U></I><BR>
<FONT COLOR = "yellow">
Optimisation du buffer d'échange :
<INPUT TYPE = "CHECKBOX" NAME = "caseOptimisation" CHECKED = "true">
<!-- Ajout de la case à cocher messages erreur service -->
Affichage messages d'erreur supplémentaires :
<INPUT TYPE = "CHECKBOX" NAME = "caseErreurSuppl" OnClick="rtn=onClickMsgSup()">
</B><BR><BR><HR>
</FONT>
<!-- Ajout de boutons pour lancer l'exécution des <> cmdes de SIG -->
<A NAME="Document"></A>
<B><U>Impression de documents et de livrets :</U></B><BR><BR>
Support de type livret :
<INPUT TYPE = "CHECKBOX" NAME = "caseLivret" OnClick="rtn=onClickMsgSup()"><BR>
Le composant COM gère les messages :
<INPUT TYPE = "CHECKBOX" NAME = "caseCOMGereMessages" CHECKED = "true">
<BR>
Saisie directe :
<INPUT TYPE = "TEXT" NAME = "editBufferDoc" SIZE = 40 VALUE = "4c65203165722062756666657220434f4D">
Avec fin de document (éjection) :
<INPUT TYPE = "CHECKBOX" NAME = "caseFinDoc" CHECKED = "true" OnClick="rtn=onClickMsgSup()">
<BR><BR>
<INPUT TYPE = "BUTTON" VALUE = "Impr. depuis saisie directe"
NAME = "Bouton1" OnClick="rtn=onClickImprDoc()">
<INPUT TYPE = "BUTTON" VALUE = "Impr. depuis fichier..."
NAME = "Bouton1C" OnClick="rtn=onClickChargerDoc()"><BR><BR>
X <INPUT TYPE = "TEXT" NAME = "editNbMultiBuffer" SIZE = 5 VALUE="1" >
<H5><A HREF="#Debut"> Retour menu</A></H5>
<HR>
<A NAME="Piste"></A>
<B><U>Gestion des pistes magnétiques :</U></B><BR><BR>
Ejection après écriture :
<INPUT TYPE = "CHECKBOX" NAME = "caseEjectionLivret" OnClick="rtn=onClickMsgSup()">
Buffer piste :
<INPUT TYPE = "TEXT" NAME = "editBufferPiste" SIZE = 40 VALUE = "2C2E2F30313233343536373839">
<BR><BR>
<INPUT TYPE = "BUTTON" VALUE = "Ecrire piste magnétique "
NAME = "Bouton3" OnClick="rtn=onClickEcrirePiste()">
<INPUT TYPE = "BUTTON" VALUE = "Lire piste magnétique "
NAME = "Bouton4" OnClick="rtn=onClickLirePiste()"><BR>
<H5><A HREF="#Debut"> Retour menu</A></H5>
<HR>
<A NAME="Vignette"></A>
<B><U>Gestion des vignettes :</U></B><BR><BR>
<INPUT TYPE = "BUTTON" VALUE = "Initialiser vignette"
NAME = "Bouton5" OnClick="rtn=onClickInitVign()">
X <INPUT TYPE = "TEXT" NAME = "editNbInitVign" SIZE = 5 VALUE="1"><BR>
Choix unité monétaire (0=F/E, 1=E/F, 2=E) :
<INPUT TYPE = "TEXT" NAME = "editUniteMonet" SIZE = 2 VALUE = "1">
<INPUT TYPE = "BUTTON" VALUE = "Choisir unité "
NAME = "Bouton3" OnClick="rtn=onClickUnitMonet()">
<BR>
Choix type vignette (32=ordinaire,33=VD,35=VD+AR,36=recommandé,38=rec.+AR,39=NM) :
<INPUT TYPE = "TEXT" NAME = "editTypeVignette" SIZE = 3 VALUE="32">
<INPUT ID = "imp" TYPE = "BUTTON" VALUE = "Imprimer vignette"
NAME = "Bouton6" OnClick="rtn=onClickImprVign()"><BR>
<H5><A HREF="#Debut"> Retour menu</A></H5>
<HR>
<A NAME="Identite"></A>
<B><U>Demande d'identification :</U></B><BR><BR>
<INPUT TYPE = "BUTTON" VALUE = "Identité SIG"
NAME = "Bouton2" OnClick="rtn=onClickIdentSIG()">
X <INPUT TYPE = "TEXT" NAME = "editNbIdentSIG" SIZE = 5 VALUE="1"><BR>
<H5><A HREF="#Debut"> Retour menu</A></H5>
<HR>
<A NAME="Emulation"></A>
<B><U>Choix de l'émulation :</U></B><BR><BR>
Choix émulation (1=IBP, 2 = IBM Proprinter) :
<INPUT TYPE = "TEXT" NAME = "editEmulation" SIZE = 2 VALUE = "1">
<INPUT TYPE = "BUTTON" VALUE = "Choisir émulation"
NAME = "Bouton7" OnClick="rtn=onClickChoisirEmul()"><BR>
<H5><A HREF="#Debut"> Retour menu</A></H5>
<HR>
<A NAME="Journal"></A>
<B><U>Journal de bord :</U></B><BR><BR>
<INPUT TYPE = "BUTTON" VALUE = "Journal de bord"
NAME = "Bouton8" OnClick="rtn=onClickJdB()"><BR>
<H5><A HREF="#Debut"> Retour menu</A></H5>
<HR>
<A NAME="Degrade"></A>
<B><U>Modes dégradés :</U></B><BR><BR>
<INPUT TYPE = "BUTTON" VALUE = "Cmde inconnue"
NAME = "Bouton9" OnClick="rtn=onClickCmdeInconnue()"><BR><BR>
<FONT COLOR = "yellow"><B>
Buffer non initialisé :<BR>
<INPUT TYPE = "BUTTON" VALUE = "Impression document"
NAME = "Bouton11" OnClick="rtn=onClickDocNonInit()">
<INPUT TYPE = "BUTTON" VALUE = "Initialisation vignettes"
NAME = "Bouton12" OnClick="rtn=onClickInfoVignNonInit()">
<INPUT TYPE = "BUTTON" VALUE = "Impression vignettes"
NAME = "Bouton17" OnClick="rtn=onClickImprVignNonInit()">
<INPUT TYPE = "BUTTON" VALUE = "Ecriture piste"
NAME = "Bouton14" OnClick="rtn=onClickEcrPisteNonInit()">
<BR><BR>
Taille buffer incorrecte :<BR>
<INPUT TYPE = "BUTTON" VALUE = "Initialisation vignettes"
NAME = "Bouton13" OnClick="rtn=onClickInfoVignErrTaille()">
<INPUT TYPE = "BUTTON" VALUE = "Impression vignettes"
NAME = "Bouton17" OnClick="rtn=onClickImprVignErrTaille()">
<INPUT TYPE = "BUTTON" VALUE = "Ecriture piste"
NAME = "Bouton15" OnClick="rtn=onClickEcrPisteErrTaille()">
</B></FONT>
<H5><A HREF="#Debut"> Retour menu</A></H5>
<!-- Ajout de la case à cocher messages erreur service
<INPUT TYPE = "BUTTON" VALUE = "Test"
NAME = "Bouton10" OnClick="rtn=onClickTest()">
<BR><BR>-->
</FORM>
</HEAD>
<body bgcolor="#77CCCC" text="#000000">
</body>
</noframes>
</html>
Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 11:51
par timmalos
Je ne vois pas le debut de la balise <noframe> il manque du code, essayez d'utiliser un outil de Debug, il y a DebugBar sous IE et de multiples applications pour Firefox et CHrome qui vous permettront en cliquant sur votre bouton d'obtenir toutes les informations necessaires pour débuguer

Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 11:52
par raptorzil
Je look ça et je reviens vers vous

Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 11:56
par raptorzil
Quand je regarde la page entière à l'aide du debugger IE, il n'y a pas d'autre balise <noframes>. finalement elle sert a rien ^^ (faudrait que j'avertisse le dev qui a fait cette page de test)
Du coup si il n'y a pas de frame, pourquoi a votre humble avis, cela ne fonctionne pas?
Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 12:30
par mikell
Hum je chercherais plutôt du côté du script
Ake chez moi ceci fonctionne
Code : Tout sélectionner
#include <IE.au3>
Local $oIE = _IECreate(@desktopdir & "\test.htm")
Sleep(500)
Local $oSubmit = _IEGetObjByName($oIE, "Bouton6")
MsgBox(0, "", $oSubmit.value)
Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 13:57
par raptorzil
Vous vous arrivez bien a récupérer l'objet du coup?
Car d'après ce que je vois votre script est similaire au mien.. sauf que moi ça marche pas.
j’obtiens ça quand je le lance a partir de l’éditeur Autoit :
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "c:\temp\test.au3"
--> IE.au3 T3.0-1 Error from function _IELoadWait, $_IESTATUS_ClientDisconnected (-2147417848, Browser has been deleted prior to operation.)
--> IE.au3 T3.0-1 Error from function _IEPropertyGet, $_IESTATUS_InvalidObjectType
--> IE.au3 T3.0-1 Warning from function _IEGetObjByName, $_IESTATUS_NoMatch (Name: Bouton6, Index: 0)
--> IE.au3 T3.0-1 Error from function _IEQuit, $_IESTATUS_InvalidObjectType
>Exit code: 0 Time: 6.902
Du coup je me dis que si il y a autant d'erreur, c'est pas bon ^^
Version IE9.
Re: [..] Utilisation IE.au3
Posté : lun. 02 mars 2015 14:33
par raptorzil
En plus j'execute ceci sur un poste nouvellement installé. W7 tout neuf quoi. aucune GPo ou autre chose.
J'ai une piste: #RequireAdmin. qui semble au moins bien exécuter le script.
Même si je n'ai pas le résultat attendu. au moins le IEQuit s’exécute, alors qu'avant non..
Le click a l'air de répondre en resultat : 1 ce qui indique Success d'après la DOC.
Je continu a investigué sur mon problème...
Bon Il semblerait que juste rajouter #RequireAdmin en début de script, résout mon problème.
Merci pour ceux qui ont regarder mon poste je le passe en résolu
Re: [R] Utilisation IE.au3
Posté : lun. 02 mars 2015 14:40
par jguinch
J'ai quand même du mal à croire que l'élévation de privilège soit nécessaire pour automatiser IE...
Re: [R] Utilisation IE.au3
Posté : lun. 02 mars 2015 15:06
par raptorzil
Et pourtant, quand ton UAC est actif et que le mode protéger de ie aussi. il semblerait qu'il y ai besoin de cette élévation de privilège...
Du moins moi cela m'a permis de résoudre mon problème.