2010-04-19 33 views
2

我有一個,似乎是,我試圖通過相當普遍的情況。如何檢測WatiN中的Javascript彈出通知?

我有一個網站,通過兩個不同的文本字段接受輸入。如果輸入格式不正確或無效,我會收到Javascript彈出式通知。

我不會總是收到一個,但是我應該在發生(如我之前所說的)格式錯誤的數據,或者無法找到搜索結果時。

如何在WatiN中檢測到此情況?

快速谷歌搜索產生的結果顯示如何點擊它們,但我很好奇我是否能夠檢測到我何時能夠檢測到?

如果你想知道,我使用的是華廷做一些屏幕抓取我,而不是集成測試:)提前

謝謝!

伊恩

回答

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'實例化? – 2011-08-12 14:25:54

+0

您應該能夠通過使用'.WaitUntilExists();'而不是'if'檢查來查看它是否存在,以避免StopWatch計時器代碼。 – 2011-08-12 19:05:45

+0

WaitUntilExists最大的問題是警報從不發生時的事件。帶有clicknowait的秒錶對我來說是一個很好的解決方案。 – nikolifish 2014-12-31 16:39:03