Page 1 sur 1

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

Posté : lun. 18 févr. 2013 14:31
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.

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

Posté : lun. 18 févr. 2013 15:22
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 ...

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

Posté : lun. 18 févr. 2013 21:38
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
 

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

Posté : lun. 18 févr. 2013 22:58
par mikell
Alors ça, fallait le repérer ... bien vu Image

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

Posté : mar. 19 févr. 2013 13:56
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 :)

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

Posté : jeu. 21 févr. 2013 16:23
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")