[..] Attendre chargement d'une page internet

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
mediko
Niveau 1
Niveau 1
Messages : 14
Enregistré le : lun. 06 juil. 2009 10:57
Status : Hors ligne

[..] Attendre chargement d'une page internet

#1

Message par mediko »

salut
je conais quelque language de programmation mais je voulais faire travailler un peut plus mon imagination avec de l'automatisation de tache ce que peut me faire autoId enfin bref ....

j'ai chercher sur ce site et d'autre mais je n'est pas trouver ce que je voulais :) :) .

je voudrais savoir si il est possible d'attendre qu'une page internet soit charger (car mon debit est pas tres rapide :D) pour realiser une action tel que faire une recherche dans google et prendre la plus coerente par exemple ??

J'ai penser a WinWaitActive mais ma fenetre ne change pas de nom sa reste la meme donc voila


je vous remerci d'avance et excuser moi pour les faute d'orthographe :) :)
Modifié en dernier par mediko le lun. 06 juil. 2009 17:27, modifié 1 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: attendre chargement d'une page internet

#2

Message par jbnh »

Bonjour,

Merci de prendre quelques secondes pour lire les règles de présentation d'un message et d'éditer votre titre.

Pour ton problème, jettes un coup d'oeil du coté de _IELoadWait
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: attendre chargement d'une page internet

#3

Message par jumby »

Effectivement, _IEloadwait est tout à fait adapté si tu utilises internet explorer.

Voici un exemple de son utilisation :

Code : Tout sélectionner

#include <IE.au3> 
Global $oIE
Global $currentwin
Opt("WinTitleMatchMode", 2) 

While 1
sleep(50)

    If WinActive("Internet Explorer", "") Then
        $a = WinGetTitle("[active]", "")
        if  $currentwin <> $a Then
            $aaaa = WinGetTitle("[active]", "")
            $aaaaa = StringLen($aaaa)
            $aaaaaa = $aaaaa - 35
            $aaaaaaa = StringMid($aaaa, 1, $aaaaaa)

$oIE = _IEAttach ($aaaaaaa)
if _IELoadWait ($oIE) = 1 Then
$currentwin = WinGetTitle('[active]', '')
MsgBox(0, 'Chargement terminé', 'Chargement terminé')
EndIf
EndIf
endif
WEnd
mediko
Niveau 1
Niveau 1
Messages : 14
Enregistré le : lun. 06 juil. 2009 10:57
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#4

Message par mediko »

merci mais je n'utilise pas IE dsl :)

sinon sa fonction marche tres bien je l'ais essayer sur IE :)

comment puis je faire sinon svp ??
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#5

Message par jbnh »

Tu veux le faire avec quel explorateur ?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
mediko
Niveau 1
Niveau 1
Messages : 14
Enregistré le : lun. 06 juil. 2009 10:57
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#6

Message par mediko »

mozilla firefox
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#7

Message par jbnh »

Tu as le FF.au3 ici.

Utiliser FFLoadWait
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
mediko
Niveau 1
Niveau 1
Messages : 14
Enregistré le : lun. 06 juil. 2009 10:57
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#8

Message par mediko »

ok merci
encore quelque petite question :) :)

voici une partie du code:

Code : Tout sélectionner

Sleep(3000)
MouseClick("left",400,877,1,1)
Sleep(1000)
MouseClick("left",90,264,1,1)
[color=#FF4000]Sleep(2000);on veut ici attendre que la page se charge[/color]
MouseClick("left",890,279,1,1)
Sleep(1000)
la parti en rouge est ce que je doit modifier :
es ce que je met tout le code precedant mais avec mosilla ??
es ce que je peut faire une fonction pour attendre que la page ce charge ?
et ( je pense que c'est la dernier ^^ :) ) es ce que quand la page sera charger je sorirai de la boucle ??

merci a tout ceux qui m'ont aider ou qui m'aideront :)
Modifié en dernier par mediko le lun. 06 juil. 2009 20:49, modifié 1 fois.
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#9

Message par SagePourpre »

_FFLoadWait est ce que tu cherches. .. pour savoir comment l'utiliser, tu n'as qu'à regarder sa définition dans le fichier ff.au3
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
mediko
Niveau 1
Niveau 1
Messages : 14
Enregistré le : lun. 06 juil. 2009 10:57
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#10

Message par mediko »

merci mais je ne voie toujours pas comment faire :) :)

je ne vien de commencais que aujourd'hui sur autoId et c'est pas si facil quand on cherche a aller un peut plus loin :) :) :) :D

merci quand même de votre aide
baconix
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 13 juil. 2009 15:12
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#11

Message par baconix »

bonsoir,
Je me permets de faire un petit up de ce sujet car je souhaite moi aussi optimiser des actions sur internet en enlevant pour commencer tous mes "sleep" d'attente de chargement de page. Comme mediko je souhaite travailler avec Mozilla, j'ai téléchargé la bibliothèque FF.au3 ainsi que le module mozrepl sur cette page http://wiki.github.com/bard/mozrepl.
J'ai regardé aussi ici http://www.autoitscript.fr/forum/viewto ... net#p17466 Cela traite du même sujet.
Enfin tout ça pour dire que cela ne fonctionne pas, lorsque j'exécute le code ci-dessous

Code : Tout sélectionner

_FFStart($AdressInternet)
    If _FFIsConnected() Then
        send("{tab}")
        sleep(1000)
        send($CurrentLogin)
        sleep(1000)
        send("{tab}")
        send($Pass)
        sleep(1000) 
        send("{Enter}")
    EndIf
 
Dans la console Autoit j'obtiens ceci

Code : Tout sélectionner

__FFStartProcess: ""C:\Program Files\Mozilla Firefox 3.1 Beta 1\firefox.exe" -new-window "http://www.********.com"  -repl ******* 
_FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
_FFConnect: AutoIt: 3.2.0.1
_FFConnect: FF.au3: 0.5.3.6b
_FFConnect: IP: 127.0.0.1
_FFConnect: Port:   4242
_FFConnect: Delay:  2ms
_FFConnect: Socket:     1640
__FFSend: try{window.content.frames["top"].document.browserDOMWindow}catch(e){'_FFCmd_Err';};
__FFRecv: repl>
__FFSend: try{navigator.userAgent}catch(e){'_FFCmd_Err';};
__FFWaitForRepl ==> Timeout: 30005ms > 30000ms $iTimeOut
__FFRecv: 
_FFCmd ==> Error return value
_FFConnect: Browser:    
__FFWaitForRepl ==> Timeout: 3014ms > 3000ms $iTimeOut
_FFCmd ==> Error return value
_FFSendJavaScripts: Sending functions to FireFox .__FFWaitForRepl ==> Timeout: 30029ms > 30000ms $iTimeOut
_FFCmd ==> Error return value
Je me demande si cela ne vient pas de la compatibilité de la bibliothèque avec Mozilla, je suis en 3.1 beta1.
Si quelqu'un peut me donner un retour là dessus pour savoir si je doit abandonner et passer à IE ou si il y a une erreur de ma part
Merci d'avance.
Baconix
JIF
Niveau 6
Niveau 6
Messages : 219
Enregistré le : mer. 04 févr. 2009 20:07
Localisation : 84
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#12

Message par JIF »

Étant donné que tu est sur une version beta, peut être que sella viens de là. Si nom au lieux d'abandonné Mozilla Firefox, tu peux passé par une boucle de détection de pixels ou d'image si une image ou un pixel est toujours pareil sur la page que tu veux automatisé.
Ton erreur peu aussi venir si ta page internet contiens des erreurs dans son codage. Si le navigateur détecte une erreur il n'affichera pas en bas a gauche "Terminé" et la plus part du temps le navigateur affiche une erreur donc si il y a ces 2 choses; je penses que ton scripte peu d'affolé d'où le message d'erreur que tu obtiens.
Cordialement JIF,
baconix
Niveau 3
Niveau 3
Messages : 34
Enregistré le : lun. 13 juil. 2009 15:12
Status : Hors ligne

Re: [..] Attendre chargement d'une page internet

#13

Message par baconix »

Salut Jif merci de ta réponse, alors j'ai essayé avec une version différente sur un autre pc et j'obtiens toujours, l'erreur, et Mozrepl est en Activate on startup .La page internet que j'ouvre affiche bien terminer, je l'ai ouverte 20 fois et jamais de soucis.
Sinon l'idée de la détection du Pixel j'y ai pensé mais le problème c'est que le site internet motif assez souvent une partie de son affiche une autre raison pour laquelle je veux essayer avec FF.au3.
Actuellement j'ai un script qui fonctionne bien tant qu'il y a pas de modification d'affiche mais c'est du bricolage avec des mouseclick()
Exemple d'une fonction:

Code : Tout sélectionner

  Func SelectListFist()
    $WindowSize=WinGetPos ("SiteInternet")
    if not @error Then
        sleep(3000)
        send("!d")
        sleep(1000)
        send($AdressSelect)
        send("{Enter}")
        sleep(3000)
MouseClick("left",$WindowSize[0]+$WindowSize[2]*0.5,$WindowSize[1]+$WindowSize[3]*0.535,1,15);0.535
        sleep(2000)
        send("{down}")
        sleep(1000)
        send("{Enter}")
        sleep(3000)
        MouseClick("left",$WindowSize[0]+$WindowSize[2]*0.5,$WindowSize[1]+$WindowSize[3]*0.75,1,15)
    EndIf
EndFunc
 
J'essaye en parallèle IE.au3, je vais créer un topic dessus aussi j'ai des petites soucis mal cela est une autre histoire.
Baconix
Répondre