2010-04-19 2 views
2

У меня есть, как мне кажется, довольно распространенный сценарий, над которым я пытаюсь работать.Как обнаружить всплывающие уведомления Javascript в WatiN?

У меня есть сайт, который принимает ввод через два разных текстовых поля. Если вход неверен или недействителен, я получаю всплывающее уведомление Javascript.

Я не всегда получаю один, но я должен в случае (как я уже говорил ранее) исказить данные или когда результат поиска не удалось найти.

Как это обнаружить в WatiN?

Быстрый поиск в Google дал результаты, которые показывают, как щелкнуть их, но мне любопытно, могу ли я обнаружить, когда я получу его?

В случае, если кто-то интересно, я использую WatiN сделать некоторый экран соскоба для меня, а не интеграционного тестирования :)

Заранее спасибо!

Ian

ответ

2

Вот что я придумал.

я прочитал этот вопрос несколько раз, прежде чем я пришел с очевидным решением ..

Can I read JavaScript alert box with WatiN?

Это код, который я придумал .. Хотя это заставит задержку в 3 секунды, если предупреждения не происходит, он отлично работает для моего сценария.

Надежда кто-то считает, что это полезно ..

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

Где/как же 'alertDialogHandler' получить экземпляр? –

+0

Вы должны быть в состоянии избежать кода таймера StopWatch, используя '.WaitUntilExists();' вместо вашей проверки 'if', чтобы узнать, существует ли она. –

+0

Самая большая проблема с WaitUntilExists - это событие, когда предупреждение никогда не происходит. Секундомер с функцией clicknowait был отличным решением для меня. – nikolifish

Смежные вопросы