[R] Contrôler interface web <input type=FILE>
Posté : mar. 29 oct. 2013 16:42
Bonjour,
je suis en train de travailler sur un Autoit qui interagist avec un site web. Il doit remplir un formulaire qui contient un input de type "FILE".
C'est cette input qui me pose problème.
Tout d'abord voici le code du formulaire web :
Il est en partise couperé car trop long et les modo m'auraient taperé dessus ^^, je n'ai mis que la partise qui me pose problème.
Mon Autoit consiste à remplir les différents champs de ce formulaire puis de valider le formulaire.
Voci l'Autoit :
Le problème est que juste après avoir cliqueré sur parcourir (et que la popup Windows me demandant le fichier de log apparaisse) le script se bloque et plus rien ne se passe.
J'ai mis un simple MsgBox après _IEAction($ofile,"click") et il faut attendre que la popup windows se ferme pour que le script continue et affiche la MsgBox.
Ma question est comment puis-je interagir sur cette fameuse popup pour définir le fichier à mettre sur champ input?
D'avance merci.
je suis en train de travailler sur un Autoit qui interagi
C'est cet
Tout d'abord voici le code du formulaire web :
Code : Tout sélectionner
<form method="post" action="upload" id="uploadform">
<span>
<label>log</label>
<input onchange="chkFileExists(this)" name="upload_file[]" id="upload_file[]" data-title="log" type="file" required="required" />
.......
.......
.......
</span>
</form>Mon Autoit consiste à remplir les différents champs de ce formulaire puis de valider le formulaire.
Voci l'Autoit :
Code : Tout sélectionner
#include <IE.au3>
local $lfile = "D:\Documents and Settings\XXXXXX\Bureau\xxxx_2012-03-18_05_59_29_235600.txt"
Local $lserver = "Europe - France"
local $ltimezone = "(GMT+01:00) Paris"
local $oIE = _IECreate(http://xxx.com",0,1)
_IELoadWait($oIE)
Sleep(150)
local $oForm = _IEGetObjById($oIE,"uploadform")
local $ofile = _IEFormElementGetObjByName($oForm, "upload_file[]")
local $oserver = _IEFormElementGetObjByName($oForm, "server")
local $otimezone = _IEFormElementGetObjByName($oForm, "timezone")
local $oButton = _IEGetObjById($oIE, "submit")
;~ _IEFormElementSetValue($ofile, $lfile) ----> Browser security prevents SetValue of TYPE=FILE
_IEFormElementOptionSelect($oserver,$lserver,1,"byText")
_IEFormElementOptionSelect($otimezone,$ltimezone,1,"byText")
_IEAction($ofile,"click")
J'ai mis un simple MsgBox après _IEAction($ofile,"click") et il faut attendre que la popup windows se ferme pour que le script continue et affiche la MsgBox.
Ma question est comment puis-je interagir sur cette fameuse popup pour définir le fichier à mettre sur champ input?
D'avance merci.