[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 6
Niveau 6
Messages : 273
Enregistré le : lun. 03 oct. 2011 21:37
Localisation : Liévin
Contact :
Status : Hors ligne

[R] Remplissage formulaire (deux zones) avec _IE  

#1

Message par franco » lun. 16 juil. 2018 13:04

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 14:59, modifié 1 fois.
L'entraide, c'est mon dada ;)

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 571
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

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

#2

Message par walkson » lun. 16 juil. 2018 17:03

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

Avatar du membre
franco
Niveau 6
Niveau 6
Messages : 273
Enregistré le : lun. 03 oct. 2011 21:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#3

Message par franco » lun. 16 juil. 2018 17:48

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 : 571
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

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

#4

Message par walkson » lun. 16 juil. 2018 17:56

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

Avatar du membre
franco
Niveau 6
Niveau 6
Messages : 273
Enregistré le : lun. 03 oct. 2011 21:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#5

Message par franco » lun. 16 juil. 2018 18:28

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 6
Niveau 6
Messages : 273
Enregistré le : lun. 03 oct. 2011 21:37
Localisation : Liévin
Contact :
Status : Hors ligne

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

#6

Message par franco » mar. 17 juil. 2018 14:45

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