Page 1 sur 1

Passage de Variables à une page web avec script JQuery

Posté : jeu. 07 avr. 2016 09:25
par liroux38
Bonjour,

Je crée un petit outil tout simple qui, lancé depuis le bureau de windows, récupère le @UserName, ouvre la page d'accueil d"un site dans IE, et lui passe le @USrName comme login, il y a un mot de passe et un bouton d'envoi.

Je rencontre le soucis suivant : la passation des valeurs @UserName, et mot de passe. En effet, cette page d'accueil ouvre une page 'secondaire' en php, qui, elle, contient une requête en JQuery...

SI quelqu'un a une piste, une idée, voire même une solution ;-)
Merci de votre aide.

Re: Passage de Variables à une page web avec script JQuery

Posté : jeu. 07 avr. 2016 14:56
par cbourree
Euh... Je ne voie pas en quoi cela peut te gêner alors peux-tu nous montrer ton code ? Nous donner un lien vers le site en question ?
As-tu regardé au niveau des fonctions pour gérer les formulaire sous IE ? _IEFormSubmit par exemple ?

Re: Passage de Variables à une page web avec script JQuery

Posté : mar. 26 avr. 2016 09:13
par liroux38
Je complète :

$oIE = _IECreate($HOST)
$oForm = _IEFormGetObjByName($oIE, "LoginForm")

$oInputFile_L = _IEFormElementGetObjByName($oForm, "Login")
_IEFormElementSetValue($oInputFile_L,$Nom)

$oInputFile_P = _IEFormElementGetObjByName($oForm, "password")
_IEFormElementSetValue($oInputFile_P,$MotDePasse)

$oInputFile_S = _IEFormElementGetObjByName($oForm, "save")

_IEAction( $oInputFile_S,"click")

_IELoadWait($oIE)

Voila ce que je suis arrivé à produire : la page web s'ouvre mais les variables ne sont pas 'toujours' passées au formulaire.
Les variables $Nom et $MotDePasse sont définies avec @UserName et la Variable $HOST avec l'url que j'ai besoin d'atteindre.
Cela va beaucoup mieux mais ne fonctionne pas...
Merci de votre aide.

Re: Passage de Variables à une page web avec script JQuery

Posté : mar. 26 avr. 2016 20:09
par koan2016
Bonsoir,

Je ne suis pas spécialiste (Il faudrait que je m'exerce longtemps avec Autoit), mais j'effectuerai dans ce cas quelques tests, en espérant que ma contribution puisse vous aider :

1 - N'est-ce pas un problème de vitesse, avez-vous vérifié visuellement que les champs se remplissent bien ?
2 - Le bouton d'envoi est bien une balise <input> ou <button> ?
3 - L'attribut de nom "save" n'est présent qu'une seule fois et votre script sélectionne la bonne balise ?
4 - Avez-vous tenté de remplacer le script que lance le bouton "save" par un simple "alert("test")" ? [F12 outils de développements en tentant de capturer la page en cours - (WinGetTitle("[ACTIVE]"))] - puis continuer votre script normalement.
5 - Avez-vous tenté de simuler le click à l'aide de javascript ? : [je n'ai pas vérifié la véracité du lien : http://stackoverflow.com/questions/2705 ... javascript ]
6 - Peut-être est-il toujours possible d'appeler la fonction appelée par le bouton plutôt que de simuler un click en appelant le code javascript ? ($oIE.document.parentWindow.execScript("javascript:code javascript a mettre ici"))
7 - Voici un lien ou il fut question de problèmes de droits : http://www.autoitscript.fr/forum/viewtopic.php?t=13282
8 - Voici un autre lien, peut-être peut-il vous aider ? http://www.autoitscript.fr/forum/viewtopic.php?t=11775
9 - J'ai aussi vu une fois un problème d'une fonction de click d'une des versions de IE.au3, mais je ne me souviens plus où ?

En espérant vous donner quelques pistes.

Cordialement

Re: Passage de Variables à une page web avec script JQuery

Posté : mar. 26 avr. 2016 20:16
par koan2016
Une autre possibilité pourrait être d'espionner les données envoyées par "POST" (Très probablement) et tenter de les reproduire (Mais là, je ne suis pas assez calé pour vous expliquer la démarche à suivre.)

Re: Passage de Variables à une page web avec script JQuery

Posté : mer. 27 avr. 2016 08:46
par liroux38
Bonjour,
Merci pour votre aide...
Voici la solution 'trouvée' qui me satisfait en partie car celle-ci transmets bien les saisies mais je trouve cette solution 'sale' :

$oIE = _IECreate($HOST)
$oForm = _IEFormGetObjByName($oIE, "LoginForm")

$oInputFile_L = _IEFormElementGetObjByName($oForm, "Login")
;_IEFormElementSetValue($oInputFile_L,$Nom)
Send($Nom & @TAB)

$oInputFile_P = _IEFormElementGetObjByName($oForm, "password")
;_IEFormElementSetValue($oInputFile_P,$MotDePasse)
Send($MotDePasse & @CR)

$oInputFile_S = _IEFormElementGetObjByName($oForm, "save")
_IEAction( $oInputFile_S,"click")

Pourquoi sale ? tout simplement parce qu'on utilise et définit des objets sans, je trouve, les utiliser convenablement : en effet, avec l'instruction send, tu simules, si j'ai bien compris, une saisie au clavier, d’où la présence en fin du @TAB pour passer au champs suivant.
Je me suis donc dis : puisque le send fonctionne sans nom de champs, la définition des objets $oInputFile_L et $oInputFile_P ne servent donc à rien et j'ai donc commenté ces lignes... Et cela ne fonctionne plus !!!
Voila pourquoi je trouve cette solution 'sale'...

Cordialement.

Lionel ROUX.