[..] IE Comment détecter l'apparition d'une fenêtre (java?)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
rvroth
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 18 févr. 2013 13:54
Status : Hors ligne

[..] IE Comment détecter l'apparition d'une fenêtre (java?)

#1

Message par rvroth »

Bonjour,

J'ai un problème pour détecter l'apparition d'une fenêtre (Javascript semble-t-il) sur une fenêtre I.E. 9!

Le mieux je pense est de vous donner un exemple:
URL: http://www.abcbourse.com/download/historiques.aspx
Saisissez 01/01/2000 comme date Du: et 01/01/2001 comme date au:,
puis cliquez sur le checkbox ISIN et saisissez QS0011213657 comme valeur
cliquez ensuite sur le bouton Télécharger

L'écran devrait alors se griser et une fenêrte Erreur de saisie devrait s'afficher --> fichier joint.

Dans mon script, je n'arrive pas à détecter l'apparition de cette fenêtre.
J'ai essayé: _IEGetObjByName, _IEFormElementGetObjByName
J'ai aussi les collections: _IEFormGetCollection et _IEFormElementGetCollection et _IETagNameAllGetCollection, _IELinkGetCollection
J'ai même essayé: PixelGetColor et WinGetTitle

mais rien n'y fait ... impossible de trouver une méthode qui permette de savoir de façon sûre si la fenêtre s'affiche ou pas.

Auriez-vous une solution à me proposer?

D'avance un grand merci pour votre aide.
:-)

[edit] ajout version I.E.
Fichiers joints
erreur_de_saisie.jpg
erreur_de_saisie.jpg (11.24 Kio) Vu 1450 fois
rvroth
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 18 févr. 2013 13:54
Status : Hors ligne

Re: [..] IE Comment détecter l'apparition d'une fenêtre (jav

#2

Message par rvroth »

pour information, j'ai réussi avec PixelGetColor, mais bon, ce n'est pas très propre ...

si jamais vous avez une solution plus appropriée, je suis preneur ...
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] IE Comment détecter l'apparition d'une fenêtre (jav

#3

Message par jguinch »

Bonsoir.
En regardant le code source de la page, on voit qu'il n'y a pas énormément de différence entre une page normale et une page avec le message d'erreur.
Une différence qui peut peut-être t'aider se trouve ligne 430 du code source.
Sans message d'erreur :

Code : Tout sélectionner

<p></p><p></p>
Quand le message d'erreur s'affiche, il y a entre ces balises la description de l'erreur :

Code : Tout sélectionner

<p></p>Vous avez fait une erreur dans la saisie des dates, corrigez la.<p></p>
Juste en testant la présence de caractères à cet emplacement, ça peut être suffisant :

Code : Tout sélectionner

$error = 0
If StringRegExp($content, "<p></p>.+<p></p>" ) Then $error = 1
 
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] IE Comment détecter l'apparition d'une fenêtre (jav

#4

Message par mikell »

Alors ça, fallait le repérer ... bien vu Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
rvroth
Niveau 1
Niveau 1
Messages : 3
Enregistré le : lun. 18 févr. 2013 13:54
Status : Hors ligne

Re: [..] IE Comment détecter l'apparition d'une fenêtre (jav

#5

Message par rvroth »

Merci beaucoup pour ta réponse jguinchard.

Effectivement, la solution est très astucieuse! Seulement, le code source reste avec l'erreur au passage suivant, même après un téléchargement sans erreur. Comme le script boucle sur la page avec une série de dates et de codes Isin, cette solution n'est malheureusement pas optimale.

Toutefois je la garde à l'esprit, car elle va m'aider à régler un autre problème sur une page qui n'est pas rechargée. Un grand merci pour cette astuce.

Si jamais, vous avez une autre idée pour résoudre mon problème initial, je suis preneur :)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] IE Comment détecter l'apparition d'une fenêtre (jav

#6

Message par jguinch »

Salut
Au lieu de travailler avec le code HTML, il faut se concentrer sur le texte visible à l'écran.
Si le texte "Erreur de saisie" est visible, c'est qu'il y a une erreur :

Code : Tout sélectionner

Local $oIE = _IEAttach("abcbourse.com", "URL")
$visibleText = _IEPropertyGet($oIE, "innertext")
If StringInStr($visibleText, "Erreur de saisie") Then MsgBox(16, "abcbourse.com", "Une erreur est apparue sur abcbourse.com")
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre