Page 1 sur 1

[R] Attendre que firefox ait finit de charger la page

Posté : mer. 05 nov. 2014 14:27
par lokomass
Bonjour à tous,

Je me permet de reprendre le post suivant : http://autoitscript.fr/forum/viewtopic.php?f=3&t=12759
Je ré-explique rapidement.
Un petit programme qui ouvre un fichier texte (qui contient des urls) et qui les ouvrent une par une.
J'ai commencé à utiliser le module FF, puis suite à mes soucis j'ai fait autrement mais c'est pas propre.
J'ouvre une url, j'attends 60 secondes, et etc... Bien souvent j’attends pour rien, puisque ça pourrait prendre entre 20 et 35 secondes max.
J'aimerais trouver une solution pour que chaque page se charge à le suite de l'autre sans délai à la manière de _FFLoadWait, mais qui me posait des soucis.
Est-ce possible via une autre solution d'attendre la fin du chargement de la page ?
Voici mon code :

Code : Tout sélectionner

#include <FF.au3>
$Texte = "Liens.txt"
$Fichier = FileOpen($Texte, 0)
While 1
    $Ligne = FileReadLine($Fichier)
    If @error Then ExitLoop
    Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe " & $Ligne)
    Sleep(60)
Wend

If _FFConnect() Then
    _FFWindowClose()
EndIf
 

Re: [..] Attendre que firefox ait finit de charger la page

Posté : mer. 05 nov. 2014 15:19
par jguinch
Si tu connais le titre de chaque page, tu devrais pouvoir utiliser WinWait (je crois que Firefox charge le nom de la page en dernier, mais pas sûr)

Re: [..] Attendre que firefox ait finit de charger la page

Posté : mer. 05 nov. 2014 15:34
par lokomass
Nop, pas avec ma page, le nom se met direct.
J'avais lu quelque part, tant que l’icône de la page est un gif de loading...

Re: [..] Attendre que firefox ait finit de charger la page

Posté : mer. 05 nov. 2014 20:25
par mikell
Avec IE ce genre de truc marche (je l'utilise pour pouvoir lire/utiliser le contenu d'une page alors que son chargement n'est pas terminé)

Code : Tout sélectionner

While 1
   $txt = _IEDocReadHtml($oIE)
   If StringInStr($txt, '</html>') Then Exitloop   ; fin de page
   Sleep(500)
Wend
mais je sais pas si c'est possible avec FF.au3

Re: [..] Attendre que firefox ait finit de charger la page

Posté : jeu. 06 nov. 2014 16:20
par ddr3
Bonjour,

Vous pourriez peut-être utiliser la fonction _FF_GetStatus() qui se trouve dans l'UDF FFEx.au3

Cette fonction renvoie une chaine vide lorsque la page est complètement chargée.

Cordialement,

ddr3

Re: [..] Attendre que firefox ait finit de charger la page

Posté : jeu. 06 nov. 2014 17:22
par lokomass
Après quelques tests il semblerait que cette fonction attend bien la fin du chargement...
A confirmer.

Code : Tout sélectionner

;Ouverture de Firefox
_FFStart()

;Programme principal
While 1
    $Ligne = FileReadLine($Fichier)
    If @error Then ExitLoop
    _FFOpenURL($Ligne)
    While _FF_GetStatus() <> ""
        Sleep(1000)
    Wend
Wend

;Fermeture de Firefox
If _FFConnect() Then
    _FFWindowClose()
EndIf
 

Re: [..] Attendre que firefox ait finit de charger la page

Posté : jeu. 06 nov. 2014 20:48
par jguinch
Merci de passer le sujet en [R] si le problème est résolu :wink: