[R] Remplire InputFile d'un formulaire avec IE invisible

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[R] Remplire InputFile d'un formulaire avec IE invisible

#1

Message par yohan8 »

Bonjour,

J'essaye d'envoyer des images via une inputfile sur un formulaire avec une IE invisible, donc de manière silencieuse.

Ce sujet a déjà été de nombreuses fois évoqué avec des réponses variées mais sans satisfaire les contraintes de mon script.
http://autoitscript.fr/forum/viewtopic.php?f=3&t=9498 Méthode rustique appelant ControlSend
http://autoitscript.fr/forum/viewtopic. ... 28&p=66322 Idem
http://autoitscript.fr/forum/viewtopic. ... 80&p=86692 Idem
http://autoitscript.fr/forum/viewtopic.php?f=3&t=9465 _IEPropertySet non fonctionelle

L'élément qui me permet de penser qu'il est possible de le faire sans ouvrir la boite de dialogue est que dans IE, après avoir sélectionner le chemin de l'image, celui-ci se remplis dans un input-text "protégé". Il est possible d'insérer le curseur mais sans pouvoir ajouter ni modifier le texte.

Image . . Image . . Image

J'aurais espérer qu'il serait possible de forcer l'inscription du chemin de mes images silencieusement dans "l'InputText" de l'InputFile sans passer par la boite de dialogue.
Modifié en dernier par yohan8 le lun. 22 juin 2015 19:56, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Remplire InputFile Leboncoin avec IE invisible

#2

Message par ZDS »

Bonjour,

Je me permets de te répondre, mais tu risques de ne pas aimer : ce que tu demandes, sans être réellement immoral, est illégal du point de vue des Conditions Générales d'Utilisation du site en question. Juste un extrait :
Règlement du site a écrit :Tout Utilisateur [...] du Service XXXXXXXXX s'engagent notamment à ne pas [...] extraire, à des fins commerciales ou non, tout ou partie des informations [... et ...] utiliser un robot, notamment d'exploration (spider), une application de recherche ou récupération de sites Internet ou tout autre moyen permettant de récupérer ou d'indexer tout ou partie du contenu du Site Internet [...] excepté en cas d'autorisation expresse et préalable de XXX France.
Ton script final permettant d'ajouter du contenu automatiquement sur le site, il est encore plus probable que son principe ne respecte pas les conditions en question.

Voici le lien vers les informations légales : Informations légales, ce que je t'ai extrait ci-dessus est tiré de l'article 6 sur la propriété intellectuelle.

Etant donné que le forum AutoIt français refuse d'apporter son soutien à la création de bots, il est possible que mes dires soient rejoint par quelqu'un de plus haut placé ayant autorité sur la suite à donner à ta requête.

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Remplire InputFile Leboncoin avec IE invisible

#3

Message par jguinch »

ZDS a tout dit.
Sujet verrouillé
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11812
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [V] Remplire InputFile Leboncoin avec IE invisible

#4

Message par Tlem »

Si mes souvenirs sont exacts, j'avais déjà signalé que le fait d'automatiser la saisie par un soft entrait en contradiction avec les règles de ce site ou de tout autre site fonctionnant de la même manière. ^^

Envoyé depuis mon appareil mobile.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [V] Remplire InputFile Leboncoin avec IE invisible

#5

Message par mikell »

Tes souvenirs sont exacts :mrgreen:
Mais il n'est jamais inutile de rappeler les bases...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

[..] éclaircissement sur _IEPropertyGet avec une Inputfile

#6

Message par yohan8 »

Bonjour,

Je suis en train d'étudier le comportement d'une Inputfile avec Autoit. Pour ce faire j'essaye de récupérer des infos et son contenu (le chemin du fichier) avec la fonction _IEPropertyGet en ciblant l'inputfile.

Voici les comportement que j'ai pu décerner et qui me paraissent obscures.


En chargeant un fichier comme l'image ci-dessous et avec l'argument "outertext", "innertext" ou "statustext" j'ai une réponse de 0 sans @error.
Image

Avec l'argument "isdisabled" j'ai une réponse False soit que l'utilisateur ne peut interagir avec l'objet. (Retrieves the value indicating whether the user can interact with the object). Que veulent ils dire par interagir ?

Avec l'argument "silent" j'ai une réponse de 0. Je ne sais comment interpréter cette réponse sachant que la doc précise : "Retrieves a value that indicates whether the browser can show dialog boxes.". Traduire par "le naviguateur ne peut montrer les boites de dialogue" serait faux car j'en utilise une pour chercher mon fichier sur mon PC.


En espérant obtenir quelques éclaircissement de votre part :D

Code : Tout sélectionner

#include <IE.au3>
$oIE = _IE_Example("form")

Local $oForm = _IEFormGetObjByName($oIE, "ExampleForm")
Local $oTextArea = _IEFormElementGetObjByName($oForm, "fileExample")
MsgBox(262144,'','pause') ;pour remplir le champ de l'Inputfile (C:\Users\Yohan...)
MsgBox(0,@error,_IEPropertyGet($oTextArea,"statustext"))
_IEQuit($oIE)
Modifié en dernier par yohan8 le jeu. 29 mai 2014 23:43, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11812
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Remplire InputFile d'un formulaire avec IE invisibl

#7

Message par Tlem »

Ré-ouverture du sujet, car les règles cités plus haut ne concerne que la collecte d'information. Hors en la circonstance, yohan8 ne fait pas de la collecte, mais du remplissage !!!

Après avoir relus la totalité du règlement du site en question, il n'y est indiqué nulle part que la saisie automatisée n'est pas autorisée. La bien-séance voudrait que yohan8 fasse une demande en bonne et due forme, mais comme il n'y a rien de contrevenant, libre à lui dans l'état actuel des règles du dit site, de remplir les formulaires avec ce qu'il veux.

Même si l'utilisation d'un bot est souvent associé à un acte de tricherie ou de malveillance, dans ce qui est décrit par yohan8, je ne vois rien de mal intentionné. Et comme le règlement du site en question n'interdit pas explicitement la saisie assistée/automatisée, je ne vois aucune raison de laisser ce sujet verrouillé.

J'ai juste ré-éditer le titre et les messages afin de ne pas mettre en avant le nom du site en question et j'ai fusionné avec le nouveau sujet de yohan8.

Le lien vers le règlement du site est conservé pour consultation.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Remplire InputFile d'un formulaire avec IE invisibl

#8

Message par jguinch »

En ce qui concerne le remplissage automatique sans passer par la boîte de dialogue, ça a pas l'air simple (je sais pas si c'est faisable d'ailleurs).
Pour la récupération, c'est un peu pareil : les champs de type "input file" semblent être verrouillés en lecture (voir ici). Par contre là, c'est faisable.

J'ai viens de faire quelques tests, et je ne sais pas trop quoi penser à part que c'est vraiment n'importe quoi...
Dans le code ci-dessous, j'utilise l'automatisation de la boite de dialogue pour entrer le nom du fichier, puis je récupère sa valeur de deux manière différentes
► Afficher le texte
La solution 1 me retourne C:\fakepath\img13.jpg
La solution 2 me retourne C:\Windows\Web\Wallpaper\Architecture\img13.jpg

Pour la solution 1, j'ai réussi à récupérer la valeur en ajoutant le site dans la zone de confiance et en mettant le paramètre Include le chemin d'accès au répertoire local lors du téléchargement des fichiers sur un serveur[/b" sur Activé
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Remplire InputFile d'un formulaire avec IE invisibl

#9

Message par yohan8 »

Merci Tlem de ta bienveillance :D
Si mon script sera un jour opérationnel j'en ferrais la demande au site en question tout en laissant le code open source.

Pour ce qui concerne le remplissage automatique sans passer par la boîte de dialogue j'en viens à la même conclusion que jguinch. Il n'est pas possible de le remplir automatiquement avec les fonctions de _IE.

Je pense qu'il est préférable de se pencher sur le fonctionnement du navigateur lors de l'ouverture de la fenêtre indésirable. Par exemple en cherchant s'il existe un plugin dans FF ou en passant par un naviguateur modifié. Il me semble avoir aperçu un navigateur web by autoit (isafari) mais impossible de mettre la mains sur une version stable..

Quoiqu'il en soit le sujet n'est pas résolu mais je laisse ce code d'une solution alternative. Merci jguinch :)
► Afficher le texte
EDIT : Il est possible de le faire avec _FF.au3 en utilisant _FFSetValue.
Répondre