Page 1 sur 1
[R] Autologin sur un site
Posté : mer. 09 déc. 2015 15:46
par anje84
Salut a vous.
je cherche a écrire un script qui me permettrais de me loguer automatiquement sur la page de mon planning puis de récupérer le contenue voulue pour l'envoyer par mail.
Pour le moment je butte sur la selection de la region, qui consiste a cliquer sur une image pour arrivé sur un formulaire d'identification. J'ai essayer ce bout de code, qui ne me donne rien.
► Afficher le texte
Code : Tout sélectionner
#include <ie.au3>
$oIE = _IECreate ("https://lesite.fr")
$oForm = _IEFormGetObjByName ($oIE, "login")
$oQuery1 = _IEFormElementGetObjByName ($oForm, "region")
$oQuery2 = _IEFormElementGetObjByName ($oForm, "username")
$oQuery3 = _IEFormElementGetObjByName ($oForm, "password")
$uname="mon nom"
$pwd="mon mdp"
$slctreg="ma region"
_IEFormElementSetValue ($oQuery1, $slctreg)
_IEFormElementSetValue ($oQuery2, $uname)
_IEFormElementSetValue ($oQuery3, $pwd)
$oButton=_IEGetObjById($oIE,"")
_IEAction ($oButton, "click")
_IELoadWait($oIE,0)
Cela me donne les erreurs suivantes:
► Afficher le texte
Code : Tout sélectionner
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
--> IE.au3 T3.0-2 Warning from function _IEFormGetObjByName, $_IESTATUS_NoMatch
--> IE.au3 T3.0-2 Error from function _IEFormElementGetObjByName, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Error from function _IEFormElementGetObjByName, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Error from function _IEFormElementGetObjByName, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Error from function _IEFormElementSetValue, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Error from function _IEFormElementSetValue, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Error from function _IEFormElementSetValue, $_IESTATUS_InvalidDataType
--> IE.au3 T3.0-2 Warning from function _IEGetObjById, $_IESTATUS_NoMatch ()
--> IE.au3 T3.0-2 Error from function _IEAction(click), $_IESTATUS_InvalidDataType
+>15:09:03 AutoIt3.exe ended.rc:0
+>15:09:03 AutoIt3Wrapper Finished.
>Exit code: 0 Time: 1.336
Pouvez m'eclairer?

Re: [..]Autologin sur un site
Posté : mer. 09 déc. 2015 16:52
par orax
Le nom du formulaire (balise <form>) c'est Form au lieu de login (qui est une balise <div>).
Et l'id du bouton c'est Splitter
Re: [..]Autologin sur un site
Posté : mer. 09 déc. 2015 17:01
par anje84
YOUHHUHUHUH

ça marche c'est une libération après trois jour de lecture et de test lol
Script corrigé:
► Afficher le texte
#include <ie.au3>
$oIE = _IECreate ("
http://example.com")
$oForm = _IEFormGetObjByName ($oIE, "Form")
$oQuery1 = _IEFormElementGetObjByName ($oForm, "region")
$oQuery2 = _IEFormElementGetObjByName ($oForm, "username")
$oQuery3 = _IEFormElementGetObjByName ($oForm, "password")
$uname="monID"
$pwd="monMdp"
$slctreg="maRegion"
_IEFormElementSetValue ($oQuery1, $slctreg)
_IEFormElementSetValue ($oQuery2, $uname)
_IEFormElementSetValue ($oQuery3, $pwd)
$oButton=_IEGetObjById($oIE,"Splitter")
_IEAction ($oButton, "click")
_IELoadWait($oIE,0)
Merci je vais me penchez enfin a la suite.
Re: [..]Autologin sur un site
Posté : mer. 09 déc. 2015 17:02
par anje84
Sinon tu peut m'expliquer ta démarche pour trouvé la soluce

Re: [R]Autologin sur un site
Posté : mer. 09 déc. 2015 17:43
par orax
Depuis IE, clique sur une zone de la carte pour afficher la partie à droite, touche F12 > onglet Explorateur DOM > clique sur l'icône à gauche (Sélectionner l'élément (CTRL + B)) > et clique sur l'élément qui doit être changé sur la page. Ça affiche la partie dans le code source qui concerne l'élément.
Pour trouver l'id du formulaire, j'ai juste cherché
<form dans le code. Il y en a qu'un donc on ne peut pas se tromper.
Au début, j'étais parti sur une autre solution...
► Afficher le texte
Code : Tout sélectionner
#include <ie.au3>
$uname = "mon nom"
$pwd = "mon mdp"
$slctreg = "ma region"
$oIE = _IECreate("http://example.com",1)
$oIE.document.getElementById("region").value = $slctreg
$oIE.document.getElementById("username").value = $uname
$oIE.document.getElementById("password").value = $pwd
$oIE.document.getElementById("btn").click()
C'est presque pareil. D'ailleurs, $oIE.document.getElementById c'est ce qui est fait dans _IEGetObjById. Voir
https://developer.mozilla.org/fr/docs/W ... lementById
Re: [R]Autologin sur un site
Posté : mer. 09 déc. 2015 18:14
par anje84
Ton code et beaucoup plus simple a lire et comprendre après coup et il marche donc je le garde sous le coude..
Maintenant je vais me lancer dans l'extraction de mes inter au format texte, puis l'envoi par mail et en dernier rendre l'action reccurente. C'est pas gagné mais j'y prends bien du plaisir..
Encore merci.