2010-04-19 5 views
2

J'ai un scénario apparemment assez commun que j'essaie de résoudre.Comment détecter les notifications pop-up Javascript dans WatiN?

J'ai un site qui accepte l'entrée à travers deux champs de texte différents. Si l'entrée est incorrecte ou incorrecte, je reçois une notification contextuelle Javascript.

Je ne recevrai pas toujours un, mais je devrais dans l'éventualité où (comme je l'ai dit plus tôt) des données malformées, ou quand un résultat de recherche n'a pas pu être trouvé. Comment puis-je détecter cela dans WatiN?

Une recherche rapide sur Google a produit des résultats qui montrent comment cliquer dessus, mais je suis curieux de savoir si je peux ou non détecter quand j'en ai un.

Dans le cas où quelqu'un se demande, j'utilise Watin pour faire un peu de grattage écran pour moi, plutôt que les tests d'intégration :)

Merci à l'avance!

Ian

Répondre

2

Voici ce que j'ai trouvé.

Je lis cette question à plusieurs reprises avant que je suis venu avec la solution évidente ..

Can I read JavaScript alert box with WatiN?

Voici le code que je suis venu avec .. Bien qu'il ne force un délai de 3 secondes si la l'alerte n'arrive pas, ça marche parfaitement pour mon scénario.

quelqu'un d'autre espoir trouve cela utile ..

frame.Button(Find.ByName("go")).ClickNoWait(); 

System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); 
stopwatch.Start(); 

while (stopwatch.Elapsed.TotalMilliseconds < 3000d) 
{ 
    if (alertDialogHandler.Exists()) 
    { 
     // Do whatever I want to do when there is an alert box. 
     alertDialogHandler.OKButton.Click(); 
     break; 
    } 
} 
+0

Où/comment le 'alertDialogHandler' a réussi à avoir instancié? –

+0

Vous devriez être en mesure d'éviter le code timer StopWatch en utilisant '.WaitUntilExists();' au lieu de votre 'if' vérifier pour voir si elle existe. –

+0

Le plus gros problème avec WaitUntilExists est l'événement où l'alerte ne se produit jamais. Le chronomètre avec clicknowait était une excellente solution pour moi. – nikolifish

Questions connexes