[R] Problème de controlSend vers un Input_file

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
redlatino
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 28 mars 2011 10:14
Status : Hors ligne

[R] Problème de controlSend vers un Input_file

#1

Message par redlatino »

Voilà j'ai un problème sur script de mise à jour automatique du site web de ma boite sur phpMyadmin.
Au formulaire d'importation en csv, j'arrive à contrôler tout sauf le input_file (avec le bouton parcourir). J'ai essayé beaucoup de méthode mais rien ne marche (comme celle avec _IE_Example dans la doc) :
Exemple de ce que j'ai essayé

Code : Tout sélectionner

$oForm = _IEFormGetObjByName($oIE, "upload_form")
$oInputFile = _IEFormElementGetObjByName($oForm, "import_file")
_IEAction($oInputFile, "focus")
$hIE = _IEPropertyGet($oIE, "hwnd")
ControlSend($hIE, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", $path)
Et bien ce genre de méthode est ignorée par le navigateur (IE8)

Donc si quelqu'un connait une méthode qui fonctionne
Modifié en dernier par redlatino le jeu. 31 mars 2011 09:48, modifié 3 fois.
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: Problème de controlSend vers un Input type[..]

#2

Message par ricky »

Hello,

un petit conseil, change ton titre et adapte le selon les règles, sinon un modérateur va te remonter les bretelles.
redlatino
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 28 mars 2011 10:14
Status : Hors ligne

Re: [..] Problème de controlSend vers un Input_file

#3

Message par redlatino »

Là il me semble suivre les règles
merci,
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Problème de controlSend vers un Input_file

#4

Message par sksbir »

Bonjour
C'est difficile de t'aider sans avoir le code source de la page que tu essayes de piloter, ou du moins une capture d'écran..

$oInputFile = _IEFormElementGetObjByName($oForm, "import_file")
Là, je comprends : t'essaye d'attraper la "case" où tu renseignes le nom du fichier...
maintenant, si c'est un champ à saisir, il te faut une action du type
_IEFormElementSetValue(oInputFile,"c:\toto.txt") ( c'est un exemple hein..)

Et puis, normalement, ya un bouton "valider" quelque part sur ta page, après avoir choisi le fichier, donc il te faut une action du style:
$submit_Name = _IEGetObjByName($oIE, "submit") ( à supposer que le bouton possède le code "submit" hein...)
Et sur cet objet, tu feras un
_IEAction($submit_Name, "Click")
redlatino
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 28 mars 2011 10:14
Status : Hors ligne

Re: [..] Problème de controlSend vers un Input_file

#5

Message par redlatino »

Merci de la réponse,
Au niveau du submit ça va pas de soucis c'est sur le input_file que je n'arrive pas à envoyer le chemin du document :
_IEFormElementSetValue(oInputFile,"c:\toto.txt") ne marche pas (aucune reaction).

Là je vais tester sur IE6 je viens de trouver un pc qui me permet de le faire car tout ce que je teste venant du net avec input="file" ne marche pas même les exemples _IE_Example.

Code : Tout sélectionner

...
$path="cheminDeMonFichier"
$oForm = _IEFormGetObjByName($oIE, "upload_form")
$oInputFile = _IEFormElementGetObjByName($oForm, "import_file")
_IEAction($oInputFile, "focus")
$hIE = _IEPropertyGet($oIE, "hwnd")
ControlSend($hIE, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", $path)

$choisirCSV=_IEGetObjById($oIE,"radio_plugin_csv")
_IEFormElementCheckBoxSelect($oIE,$choisirCSV)
$modifierParvirgule=_IEGetObjById($oIE,"text_csv_terminated")
_IEFormElementSetValue($modifierParvirgule,",")
$submit=_IEGetObjById($oIE,"buttonGo")
_IEAction($submit,"Click")
 
redlatino
Niveau 1
Niveau 1
Messages : 4
Enregistré le : lun. 28 mars 2011 10:14
Status : Hors ligne

[R] Problème de controlSend vers un Input_file

#6

Message par redlatino »

Oui des heures perdues pour rien ça marche sur IE6 (config des specifications ça tombe bien). Je ne sais pas pourquoi ça ne marche pas sur IE8, apparemment on ne peut rien écrire dans les input type="file", une protection surement.
Merci de votre intérêt.
Répondre