[R] Remplissage formulaire (deux zones) avec _IE

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[R] Remplissage formulaire (deux zones) avec _IE  

#1

Message par franco »

Bonjour.

J'essaye de remplir automatique deux zones d'éditions avec IE, via ce lien : https://www.leboncoin.fr/compte/part/mes-annonces/


Les deux zones sont bien remplies...
Fin bref, je le croyais...

Car si je décide de me connecter (manuellement), ces deux zones s'effacent automatiquement, et un message me dit que je n'ai rien indiqué dans les deux zones.
Comme si je n'avais vraiment rien indiqué.


Voici le code :
#include <IE.au3>
$maillbc = "mail@live.fr"
$mdplbc = "mot_de_passe"

ProcessClose("iexplore.exe")
$ClearID = "32"
Run("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess " & $ClearID)

$oIE = _IECreate("https://compteperso.leboncoin.fr/account/index.html", 0, 1, 1)

$username = _IEGetObjByName($oIE, "email")
$mdp = _IEGetObjByName($oIE, "password")
Local $hWnd = _IEPropertyGet($oIE, "hwnd")


_IEFormElementSetValue($username, $maillbc)
_IEFormElementSetValue($mdp, $mdplbc)

_IELoadWait($oIE)
Donc, ma question : pourquoi les zones s'effacent ?
Aurais-je oublié une étape ?

Je ne cherche qu'une seule chose : que le remplissage se fasse bien, qu'il ne s'efface pas.


Merci de m'aiguiller...

++
Modifié en dernier par franco le mar. 17 juil. 2018 15:59, modifié 1 fois.
L'entraide, c'est mon dada ;)
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Remplissage formulaire (deux zones) avec _IE

#2

Message par walkson »

Bonjour,
Et comme ça ?
#include <IE.au3>
$maillbc = "mail@live.fr"
$mdplbc = "mot_de_passe"


$oIE = _IECreate("https://compteperso.leboncoin.fr/account/index.html")

$username = _IEGetObjByName($oIE, "email")
$mdp = _IEGetObjByName($oIE, "password")

_IEFormElementSetValue($username, $maillbc)
_IEFormElementSetValue($mdp, $mdplbc)
Local $oInputs = _IETagNameGetCollection($oIE, "button")
Local $sTxt = ""
For $oInput In $oInputs
    $sTxt &= $oInput.type &"---"& $oInput.innertext  & @CRLF
   If $oInput.innertext = "Se connecter" Then _IEAction($oInput, "click")
Next
MsgBox(0, "Form  Type", " Types :" & @CRLF & $sTxt)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Remplissage formulaire (deux zones) avec _IE

#3

Message par franco »

Salut.

Et merci pour ton intervention :)

Le résultat est le même avec ton script : à la fin, c'est marqué qu'on n'a ni indiqué de mail, ni de mot de passe...

j'ai l'impression qu'en surface, rien a été "écrit".

https://i.imgur.com/fDslzlm.png
https://transfer.sh/AQ0nG/2018-07-16_18-46-57.mp4


Peut-être qu'il faut d'abord rendre actif les zones avant l'édition ?
je sais pas :'(


++
L'entraide, c'est mon dada ;)
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Remplissage formulaire (deux zones) avec _IE

#4

Message par walkson »

Si je désactive If $oInput.innertext = "Se connecter" Then _IEAction($oInput, "click") j'obtiens bien le formulaire rempli avec MDP et login mais comme je n'ai pas de compte, je ne peux pas vérifier plus loin
(IE 11 et win 7)
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Remplissage formulaire (deux zones) avec _IE

#5

Message par franco »

Salut.

Même sans compte, si on valide avec des identifiants erronées, on doit avoir un message stipulant ceci : "Votre identifiant ou mot de passe est incorrect."

sauf qu'avec ton script, ou le mien, on n'a pas ça...

Bizarre...

Je me demande s'il faut pas utiliser les include de FF.....

On va tester ça.


++
L'entraide, c'est mon dada ;)
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 342
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Remplissage formulaire (deux zones) avec _IE

#6

Message par franco »

Salut.

Souci résolu.


la commande "_IEFormElementSetValue" ne fonctionne pas, dans cet exemple...

En utilisant _IEPropertySet et le paramètre innertext, ça fonctionne...


Voici le code
#include <IE.au3>

ProcessClose("iexplore.exe")
$ClearID = "32"
Run("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess " & $ClearID)

$oIE=_IECreate("https://www.leboncoin.fr/compte/part/mes-annonces/")
$mail_lbc = _IEGetObjByName($oIE,"email")
$mdp_lbc= _IEGetObjByName($oIE,"password")
_IEPropertySet($mail_lbc ,"innertext","mail@live.fr")
_IEPropertySet($mdp_lbc,"innertext","motdepasse")

Local $oObjs = _IETagNameGetCollection($oIE, "button")
Local $sTxt = ""
For $oObj In $oObjs
    $sTxt &= $oObj.type &"---"& $oObj.innertext  & @CRLF
        If $oObj.innertext = "Se connecter" Then _IEAction($oObj, "click")
Next


;~ Local $oSubmit = _IEGetObjByName($oIE, "submit")
;~ _IEAction($oSubmit, "click")
;~ _IELoadWait($oIE)


Exit

Maintenant, il faut que je trouve un moyen de supprimer les mots de passe.

car Run("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess " & $ClearID) fonctionne 1 fois sur 4. ^^


Dès que je trouve ce "moyen", je pourrais mettre ce topic en résolu.


PS : j'ai surement une piste, avec la navigation privée.



EDIT :

Résolu... ;)

En fait, il n'y avait pas d'erreur...

Mais une petite modification s'imposait.
Ici :
$ClearID = "32"
Run("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess " & $ClearID)
J'ai modifié 32 par 255...
Et j'ai opté pour un RunWait, car sinon, IE s'ouvrait avant la suppression des mots de passes et autres (car 255 : supprime tout ^^)

-> https://www.autoitscript.com/forum/topi ... ent=829193

Voilà le code
#include <IE.au3>

ProcessClose("iexplore.exe")
$ClearID = "255"
RunWait("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess " & $ClearID)

$oIE=_IECreate("https://www.leboncoin.fr/compte/part/mes-annonces/")
$mail_lbc = _IEGetObjByName($oIE,"email")
$mdp_lbc= _IEGetObjByName($oIE,"password")
_IEPropertySet($mail_lbc ,"innertext","mail@live.fr")
_IEPropertySet($mdp_lbc,"innertext","motdepasse")

Local $btns = _IETagNameGetCollection($oIE, "button")
Local $sTxt = ""
For $btn In $btns
    $sTxt &= $btn.type &"---"& $btn.innertext  & @CRLF
        If $btn.innertext = "Se connecter" Then _IEAction($btn, "click")
Next

Exit
Je passe donc en résolu.

Merci à toi ;)

++
L'entraide, c'est mon dada ;)
Répondre