Page 1 sur 1
[..] _IE input file
Posté : mar. 13 mars 2012 08:08
par 123456789
Bonjour,
Alors voilas je cherche a manipuler la page de
http://depositfiles.com/ et j'ai un souci avec le input pour sélectionné le fichier.
J'ai fait un tour dans la recherche et j'ai trouver sa :
► Afficher le texte
Code : Tout sélectionner
$oInputs = _IETagNameGetCollection ($oIE, "input")
For $oInput In $oInputs
If $oInput.type == "file" Then _IEPropertySet($oInput, "innertext", "lechemaindufichier")
Next
Bon le souci c'est que ça ne fonctionne pas chez moi après modification, donc la je sèche j'ai essayer pas mal de façons avant de venir demander de l'aide ...
Re: [..] _IE input file
Posté : mar. 13 mars 2012 08:24
par Tlem
Je vois que vous reprenez le texte du template, mais vous avez oublié ceci :
Lisez attentivement.
Pour ma part, je vais rajouter plus de précision dans la première ligne du template, puisque visiblement cela ne vous choque pas d'avoir un forum dont tous les messages sont écrit de la même manière !!!
Re: [..] _IE input file
Posté : mar. 13 mars 2012 14:15
par mikell
Hum pas forcément évident ^^
Y a que les solutions 'rustiques' qui marchent...
► Afficher le texte
Code : Tout sélectionner
#include <IE.au3>
Opt("WinTitleMatchMode", -2)
$file = @desktopdir & "\fichier.zip"
$oIE = _IECreate("http://depositfiles.com/")
_IELoadWait ($oIE)
$oInput = _IEGetObjByName ( $oIE, "files")
_IEAction ($oInput, "focus")
ControlSend ("Deposit Files", "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", $file )
Sleep(2000)
$oInputs = _IETagNameGetCollection ($oIE, "input")
For $oInput In $oInputs
If $oInput.type == "submit" Then _IEAction ($oInput, "click")
Next
while 1
Sleep(10)
wend
Re: [..] _IE input file
Posté : mar. 13 mars 2012 18:37
par 123456789
Voici la portion de code qui nous intéresse :
► Afficher le texte
Code : Tout sélectionner
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Case $upload
$read_list_upload = GUICtrlRead($list_upload)
If ($read_list_upload <> "") Then
$oIE = _IECreate("http://depositfiles.com/")
_IELoadWait ($oIE)
$obj_form = _IEFormGetCollection($oIE, 0)
$obj_login = _IEFormElementGetCollection($obj_form, 1)
$obj_mdp = _IEFormElementGetCollection($obj_form, 2)
_IEFormElementSetValue($obj_login, "pseudo")
_IEFormElementSetValue($obj_mdp, "pass")
_IEFormSubmit ($obj_form)
_IELoadWait($oIE)
$oInput = _IEGetObjByName ( $oIE, "files")
_IEAction ($oInput, "focus")
ControlSend ("Deposit Files", "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "lienfichier")
Sleep(2000)
$oInputs = _IETagNameGetCollection ($oIE, "input")
For $oInput In $oInputs
If $oInput.type == "submit" Then _IEAction ($oInput, "click")
Next
Else
MsgBox(48, "Erreur", "Veuillez Ajouter un fichier !")
EndIf
EndSwitch
WEnd
Je pense avoir correctement adapté votre exemple donc cela doit venir du code sur la page créer il me met comme message "Select file from your local computer or remote server" donc je pense qu'il me détecte pas ou n'arrive pas a envoyer la variable $file j'ai donc changer et mis "lien de mon fichier" et la toujours le même message
Si non j'aurais voulu savoir ou avez vous récupéré cette partie :
► Afficher le texte
Code : Tout sélectionner
ControlSend ("Deposit Files", "", "[color=#FF0000][CLASS:Internet Explorer_Server; INSTANCE:1][/color]", "lienfichier")
Dans les info de la page ?
Re: [..] _IE input file
Posté : mar. 13 mars 2012 20:25
par mikell
Hum je vois que tu passes par une inscription avec pseudo/password, qui doit te mener sur une autre page
Cette autre page, j'ai pas pu la tester et il est possible que le code soit différent, le script que j'ai mis fonctionne sur la page de départ de depositfiles (user non enregistré)
Pour vérifier faudrait voir le code-source de cette page
Le point commun doit être ce fichu input 'file' qui résiste à l'injection de texte, et pour lequel on ne peut utiliser qu'un ControlSend (ou peut-être un ControlSetText)
C'est pour ça que j'utilise [CLASS:Internet Explorer_Server; INSTANCE:1], qui est tout simplement l'identité en tant que controle de la fenêtre IE ouverte (merci Au3info.exe)
Pour la même raison, pour que ça fonctionne il faut d'abord donner le focus à ce foutu input avant d'écrire dedans
Le Sleep(2000) c'est pour laisser le temps à l'input de digérer ce qu'on y écrit avant le clic final, pour mon test ça suffisait mais il faut peut-être modifier la valeur
Re: [..] _IE input file
Posté : mar. 13 mars 2012 23:11
par 123456789
► Afficher le texte
Code : Tout sélectionner
<form id="upload_form" onsubmit="return check_form()" action="http://fileshare3211.depositfiles.com//FS321-4u/?X-Progress-ID=83e59f07b8f978609ee70c16e7daad65" enctype="multipart/form-data" method="post" target="uploadframe">
<input type="hidden" value="2097152000" name="MAX_FILE_SIZE">
<input type="hidden" value="1331676159b303127edfc354e4810ba478b88845e9" name="UPLOAD_IDENTIFIER">
<input type="hidden" value="1" name="go">
<div class="upload_form_title">Télécharger et envoyer votre dossier: (max 2 Gb)</div>
<div id="error_files" class="error_message"></div>
<div id="error_UPLOAD_IDENTIFIER" class="error_message"></div>
<div>
<input class="file" type="file" name="files" size="51">
</div>
<div class="agree">
<span style="font-size:10px;">
<a href="http://depositfiles.com/gold/files_list.php">Télécharges éloignés</a>
/
<a href="http://depositfiles.com/m_upload.php">Multi-charge / Groupe de fichiers </a>
-
<a target="_blank" href="http://depositfiles.com/file_set.html">
<b>Qu'est-ce que c'est?</b>
</a>
</span>
<div id="error_agree" class="error_message"></div>
<input type="hidden" value="1" name="agree">
</div>
<br>
<div class="uploadnow">
<input type="submit" value="Pour télécharger ">
<p style="text-align: center">
En appuyant sur "Télécharger maintenant", vous vous engagez avec les
<a target="_blank" href="http://depositfiles.com/agreem.html">CONDITIONS D'UTILISATION ET ACCORD UTILISATEUR</a>
</p>
</div>
</form>
Voilas le HTML quand on est connecter, j'ai essayer les 2 possibilités (connecter ou non) le souci été le même, de plus dans AutoIt il me disais qui avais un souci avec le "WEnd".
Re: [..] _IE input file
Posté : jeu. 15 mars 2012 18:04
par 123456789
up

Re: [..] _IE input file
Posté : jeu. 22 mars 2012 02:42
par 123456789
up plz
Re: [..] _IE input file
Posté : ven. 23 mars 2012 13:47
par 123456789
Up !
Re: [..] _IE input file
Posté : ven. 23 mars 2012 14:13
par mikell
Bon, on est trompé par la simplicité apparente du code source de la page
Mais pour résumer, disons que tous les évènements sur la page (écriture, comportement de la souris...) sont interceptés par des fonctions javascript elles-mêmes installées par un .swf et et gérées par un .js chargés dans le cache du navigateur
Donc manquant de motivation pour y passer des heures, je passe la main ^^
Une manière de contourner le problème pourrait être l'uploader
http://depositfiles.com/uploader.html (pas testé)
Re: [..] _IE input file
Posté : mer. 28 mars 2012 22:32
par 123456789
Ok je vais voir ça merci
