[R] Probleme fonction _IEAction et le CLICK

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

[R] Probleme fonction _IEAction et le CLICK

#1

Message par zesteph »

Bonjour tout le monde
je suis entrain d'apprendre à utiliser la lib #include <IE.au3>
Hors meme avec l'exemple de cette page le click sur un bouton ne fonctionne pas !!!
http://www.autoitscript.com/autoit3/doc ... Action.htm

Par contre si je met "selectall" à la place de "click" cela fonctionne.

Je ne comprends pas ce qui pourrait ne pas fonctionner sur le code de l'exemple et surtout cette fonction "click"

Merci de votre aide car malgres tous les exemples que j'ai vu avec la fonction recherche cela passe pas pour le click :(
Modifié en dernier par zesteph le ven. 04 oct. 2013 16:03, modifié 4 fois.
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#2

Message par zesteph »

Petit completement d'information
Je suis sur IE10 et Windows 7.
A priorie cela viendrait de la version de IE (vu sur les forums us) mais aucun n'a donné de solution :( (du moins pas encore trouvée)

car mon but 1er et de faire un clic sur le bouton ok apres avoir renseigner mon email/pass de ce lien
http://www2.leboncoin.fr/ai/form/9

renseigner les 2 champs ok, c'est après le soucis
comme l'exemple

Code : Tout sélectionner

#include <IE.au3>

Local $oIE = _IECreate("http://www2.leboncoin.fr/ai/form/0")
$oForm  = _IEFormGetCollection ($oIE,0 )
$oName = _IEFormElementGetObjByName($oForm, "st_username")
$oPass = _IEFormElementGetObjByName($oForm, "st_passwd")
$oSubmit = _IEGetObjById($oForm, "submit")


_IEFormElementSetValue($oName, "monmail@free.fr")
_IEFormElementSetValue($oPass, "monpass")
_IEAction($oSubmit, "click")
car apres le but, après mettre connecter c'est de cliquer de nouveau sur le bouton/lien "déposer une annonce"
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#3

Message par zesteph »

personne n'a une idée pour mon problème :(
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#4

Message par yohan8 »

En essayant de se connecter à partir de cette page ?
https://compteperso.leboncoin.fr/accoun ... ml?ca=12_s
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#5

Message par zesteph »

Le soucis est le meme le CLICK sur le bouton de validation marche pas :(
tioxine
Niveau 3
Niveau 3
Messages : 39
Enregistré le : sam. 14 janv. 2012 17:00
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#6

Message par tioxine »

Bonjour,

Essayer ceci

;_IEAction($oSubmit, "click")
Local $form = _IEGetObjByName($oIE,"loginform")
_IEFormSubmit($form)

Cette ligne $oSubmit = _IEGetObjById($oForm, "submit") est fausse
submit est le type du boutton OK (<input type="submit" ...) et non son nom (paramètre name ou id)
L'appui sur ce bouton lance la soumission du form "loginform"

A+
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#7

Message par zesteph »

oui si je met la fonction _IEFormSubmit
cela fonctionne, cela se log bien, sauf que après le soucis pour cliquer sur déposer une annonce se reproduit.

Avec de la bidouille, mouseclick sur le bord de la page et apres des TAB à répétition, j'arrive sur le bouton, mais cela n'est pas propre.

J'essaye de comprendre pourquoi les fonctions _IE fonctionne mal avec ie10 :(

Car pour tout le site c'est la misere, les combo qu'on peut pas sélectionner....


Merci quand meme pour cette solution, qui repousse le soucis du _ieaction / click

Par contre j'ai que que les pages n'ont pas de FORM NAME
tioxine
Niveau 3
Niveau 3
Messages : 39
Enregistré le : sam. 14 janv. 2012 17:00
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#8

Message par tioxine »

Salut,

Quel souci ?
Mets moi le code qui ne va pas (je dois avoir quelque par un logon/pass pour le bon coin)

Je regarderais ce soir si je le peux

A+
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#9

Message par zesteph »

voila ce que j'ai fait pour le moment pour outre passer le IEAction
Mais c'est pas super propre je trouve meme si cela fonctionne.

Code : Tout sélectionner

        
; Lancement navigateur
        Local $oIE = _IECreate("http://www2.leboncoin.fr/ai/form/0")
        WinWaitActive("Formulaire","",20)
        WinSetState("Formulaire", "",@SW_MAXIMIZE)
        $oForm  = _IEFormGetCollection ($oIE,0 )
        ;Renseigner Email et password
        Local $oName = _IEFormElementGetObjByName($oForm, "st_username")
        _IEFormElementSetValue($oName, $Email)
        Local $oPass = _IEFormElementGetObjByName($oForm, "st_passwd")
        _IEFormElementSetValue($oPass, $Mot_De_Passe)
[color=#FF0000]     MouseClick("left",5,250,1,1)
        Sleep(1000)
        Send("{TAB 3}")
        Sleep(2000)
        Send("{ENTER}")[/color]
        WinWaitActive("Compte","",20)
        $oIE =_IENavigate($oIE,"http://www2.leboncoin.fr/ai?ca=16_s")
        Sleep(2000)
        WinWaitActive("Formulaire","",20)
[color=#FF0000]     MouseClick("left",686,639)
        Send("{TAB 15}")
        Sleep(2000)[/color]
        ;*********************
        ; SELECT CATEGORIE
        ;*********************
[color=#FFBF00]MouseClick("",5,250,1,1)
$oRegion  = _IEFormGetCollection ($oIE )
Local $oSelect = _IEFormElementGetObjByName($oRegion, "region")
_IEFormElementOptionSelect($oSelect, "Midi-Pyrénées", 1, "byText")[/color]

 
Donc la partie en rouge n'est pas propre alors qu'un IEACTION serait beau et propre
et en orange le selection qui ne se fait pas :(
tioxine
Niveau 3
Niveau 3
Messages : 39
Enregistré le : sam. 14 janv. 2012 17:00
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#10

Message par tioxine »

Salut,

Voici le retour

La fonction _IEAFWaitObjet permet de se prémunir contre les pb d'asynchronisme et de ne pas avoir à ajouter des sleep un peu partout

Testé sur un IE10 avec Win7 64 bits

Attention : Il faut être déconnecté au départ sinon planté

Code : Tout sélectionner

#include-once
#include <IE.au3>

;Lancement navigateur
Local $oIE = _IECreate("http://www2.leboncoin.fr/ai/form/0")
If Not @error Then WinWaitActive("Formulaire","",20)
If Not @error Then WinSetState("Formulaire", "",@SW_MAXIMIZE)
If Not @error Then Local $oForm  = _IEAFWaitObjet($oIE,"loginform","_IEFormGetObjByName",10)
;Renseigner Email et password
If Not @error Then Local $oName = _IEAFWaitObjet($oForm,"st_username","_IEFormElementGetObjByName",10)
If Not @error Then _IEFormElementSetValue($oName, "mail")
If Not @error Then  Local $oPass = _IEAFWaitObjet($oForm,"st_passwd","_IEFormElementGetObjByName",10)
If Not @error Then  _IEFormElementSetValue($oPass, "psw")
If Not @error Then _IEFormSubmit($oForm,0)
 If Not @error Then WinWaitActive("Compte","",20)
 If Not @error Then _IENavigate($oIE,"http://www2.leboncoin.fr/ai?ca=16_s")
 If Not @error Then WinWaitActive("Formulaire","",20)
 ;*********************
 ; SELECT LOCALISATION
 ;*********************
 If Not @error Then Local $oRegion  = _IEAFWaitObjet($oIE,"formular","_IEFormGetObjByName",10)
 If Not @error Then Local $oSelect = _IEAFWaitObjet($oRegion,"region","_IEFormElementGetObjByName",10)
 If Not @error Then _IEFormElementOptionSelect($oSelect, "Midi-Pyrénées", 1, "byText")

 ; #FUNCTION#============================================================================================================
; Name...........: _IEAFWaitObjet
; Description ...: Attendre un objet
; Syntax ........: _IEAFWaitObjet($pHandle, $pObj, $pMeth, $pTimer)
; Parameters ....: $pHandle  - Le handle du parent (Voir documentation associée à la méthode $pMeth)
;                  $pObj     - L'objet (Voir documentation associée à la méthode $pMeth)
;                  $pMeth    - La méthode à utiliser pour obtenir l'objet
;                  $pTimer   - Max attente en secondes
; Return values .: On Success - L'objet
;                  On Failure - -1
; Error values ..: 0 si OK, Le code erreur sinon
; Author         :
; Version du     : V1.0 du 07/03/2013
;   Création
; ===============================================================================================================================
Func _IEAFWaitObjet ($pHandle, $pObj, $pMeth, $pTimer)
    Local $objet
    Local $xi = 0
    Local $erreur = 1

    While($erreur <> 0 And $xi < $pTimer)
        Switch $pMeth
            Case "_IEFormGetObjByName"
                ; Récup property
                $objet = _IEFormGetObjByName($pHandle, $pObj)
            Case "_IEGetObjByName"
                ; Recup des forms
                $objet = _IEGetObjByName($pHandle, $pObj)
            Case "_IEFormElementGetObjByName"
                ; récup objet par name
                $objet = _IEFormElementGetObjByName($pHandle, $pObj)
            Case "_IEFormElementOptionSelect"
                ; Modif selection
                $objet = _IEFormElementOptionSelect($pHandle, $pObj)
            Case "_IEGetObjById"
                ; Récup Id
                $objet = _IEGetObjById($pHandle, $pObj)
            Case "_IEPropertyGet"
                ; Récup property
                $objet = _IEPropertyGet($pHandle, $pObj)
            Case Else
                $erreur = -1
                $xi = $pTimer
        EndSwitch
        $erreur = @error
        $xi = $xi + 1
        Sleep(1000)
    WEnd
    If ($erreur <> 0) Then
        SetError($erreur)
        $objet = -1
    EndIf
    Return $objet
EndFunc
 
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#11

Message par zesteph »

Genial ta fonction !! je peux aller dans les listes en plus :)

sinon tu dis que cela fonctionne ?

moi cela ne me valider par l'id et pass

si je veux valider mon compte je dois remplacer ta ligne

Code : Tout sélectionner

If Not @error Then _IEFormSubmit($oForm)
par une bidouille

Code : Tout sélectionner

MouseClick("left",5,250,1,1)
        Sleep(1000)
        Send("{TAB 3}")
        Sleep(2000)
        Send("{ENTER}")
pour que cela me clique sur ok et me valide mon pseudo

encore merci de ton aide que tu m'accordes
tioxine
Niveau 3
Niveau 3
Messages : 39
Enregistré le : sam. 14 janv. 2012 17:00
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#12

Message par tioxine »

Salut,

C pas normal ça
Il te dit quoi exactement quand tu conserve le submit ?

A+
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#13

Message par zesteph »

il me dit rien et ne fait rien
c'est le time out qui active l'action suivant
zesteph
Niveau 2
Niveau 2
Messages : 22
Enregistré le : mar. 19 avr. 2011 11:23
Status : Hors ligne

Re: [..] Probleme fonction _IEAction et le CLICK

#14

Message par zesteph »

bon test de la fonction sur un autre pc le _IEFormSubmit passe bien !!!
delire.

Bon en tout cas ta fonctionne resout le probleme pour le _IEAction et click ou focus.

Solution pour IE10

Code : Tout sélectionner

if Not @error Then Local $oImgr = _IEAFWaitObjet($oForumular,"Button_Click","_IEFormElementGetObjByName",2)
_IEAction($oImgr,"focus")
 
Je mets R en titre ;)

Je continue mon script, si soucis je posterai autre sujet en rapport au soucis.

Encore merci pour ton aide.
Répondre