Page 1 sur 1

[R] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 10:40
par CDBarbu
Bonjour,

Je suis actuellement en train d'essayer de développer un programme qui me permet d'ouvrir une nomenclature que je récupère sur un site internet dans une popup sous Windows.

Après quelques recherches j'ai trouvé l'UDF FF.au3 couplé avec MozRepl qui a l'air de tout à fait correspondre à ce que je veux faire.
Mais je bloque dès le départ, en effet pour accéder au site qui contient les nomenclatures je dois me connecter à l'aide d'un identifiant et d'une mot de passe.

J'ai donc tester la fonction _FF_AutoLogin() mais sans succès, peut-être que le formulaire pour se connecter n'est pas "standard" ?

_FF_AutoLogin() :
► Afficher le texte
Mon code :

Code : Tout sélectionner

#include <FF.au3>

$url = "http://xxx.com"
$identifiant = "monIdentifiant"
$mdp = "monMdp"

_FFStart($url)
_FFConnect()
_FFLoadWait()
_FF_AutoLogin($identifiant,$mdp,$url)

 Exit
Et voilà ce que j'obtiens dans la console, on dirait que tout se passe bien sauf les 2 dernières étapes :
► Afficher le texte
J'ai donc essayer autre chose :
Je me suis dis que le formulaire de connexion n'était peut-être pas standard, j'ai donc regardé le code source de la page et j'ai vu ça :

Code : Tout sélectionner

<input type="text" value="" size=14" maxlength="255" name="userName"></input>
<input type="password" value="" size=14" maxlength="255" name="password"></input>
J'ai donc essayer d'utiliser la fonction _FFCmd() pour directement exécuter du javascript sur la page en faisant :

Code : Tout sélectionner

_FFCmd(".getElementsByName(""userName"").value = ""monIdentifiant""")
Et la console me renvoie ça, mais rien n'apparait dans le champs identifiant sur la page web :
__FFSend: try{window.content.top.document.getElementsByName("userName").value = "monIdentifiant"}catch(e){'_FFCmd_Err';};
__FFRecv: monIdentifiant
Je ne m'y connait quasiment pas en javascript et c'est la première fois que j'utilise cette UDF donc peut-être que je suis passé à coté de quelque chose, j'ai beau cherché je ne trouve pas ce qui ne va pas.

Merci d'avance pour votre aide !

Re: [..] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 10:48
par Y01
Bonjour,

Est ce que ceci fonctionne ?

Code : Tout sélectionner

http://$identifiant:$password@site.com

Re: [..] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 11:01
par CDBarbu
Non ça ne fonctionne pas, Firefox me dit que ce site ne demande pas une authentification, et puis j'arrive sur la page de login habituelle.

Re: [..] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 11:39
par Y01
Quelle version de Firefox ?

Je viens de tester sur FF 35 et je n'ai pas eu de message d'erreur en voulant me connecter sur un site sans identifications.

Re: [..] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 11:42
par CDBarbu
J'ai la 35 aussi, mais ce n'est pas un message d'erreur c'est plus une notification en fait. Pour demander si c'est bien moi qui suit à l'origine de cette "demande", et si je veux continuer ou non.

Re: [..] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 11:51
par Y01
Malheureusement, n'utilisant pas l'UDF FF, je ne pourrais pas aller plus loin dans les investigations :?

Re: [..] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 15:44
par CDBarbu
Merci d'avoir essayé :)

Et j'ai enfin trouvé après des heures de recherche et pour finir la solution était sur le forum... et c'est pourtant pas faute d'avoir cherché, j'ai trouvé sur ce topic

Il faut utiliser la fonction "_FFSetValueByName" de l'UDF FF.au3 mais le truc c'est qu'elle n'y est pas dans celui que j'ai téléchargé sur le topic officiel. Et elle n'est pas référencée dans sa documentation non plus.
J'ai fini par la trouver sur le site de l'auteur de l'UDF (il me semble), où il y a un complément qui s'appelle FFEx.au3 et qui lui contient les fonctions que je cherche depuis des heures.

Donc mon code fonctionnel :

Code : Tout sélectionner

#include <FF.au3>

$url = "http://xxx.com"
$identifiant = "monIdentifiant"
$mdp = "monMdp"

_FFStart($url)
_FFConnect()
_FFLoadWait()
_FFSetValueByName("userName",$identifiant)
_FFSetValueByName("password",$mdp)
Le sujet est donc résolu :wink:

Re: [R] Remplir un formulaire avec l'UDF FF.au3

Posté : jeu. 29 janv. 2015 16:09
par Y01
Félicitations et merci d'avoir partagé la solution !