c# – Watin – 使用ConfirmDialogHandler處理確認對話方塊
使用Watin,我試圖處理一個確認對話方塊,並告訴Watin按“OK”.這在網際網路上有很好的記錄 – 您使用ConfirmDialogHandler和UseDialogOnce方法..除了它不適用於我.我收到以下錯誤:
WatiN.Core.Exceptions.WatiNException:對話方塊在5秒鐘內不可用
我正在使用watin 2.0 beta atm,但是我以前使用的是早期版本的1.X,它具有相同的問題.在執行64位Vista的同事機器上進行測試,我執行的是64位Windows+7/">Windows 7.
程式碼如下所示:
using (IE ie = new IE("http://localhost/TestApp/TestConfirmPage.asp")) { var approveConfirmDialog = new ConfirmDialogHandler(); using (new UseDialogOnce(ie.DialogWatcher, approveConfirmDialog)) { ie.Button(Find.ByName("btn")).ClickNoWait(); approveConfirmDialog.WaitUntilExists(5); approveConfirmDialog.OKButton.Click(); } ie.WaitForComplete(); }
ASP頁面非常簡單,它包含一個強制確認的按鈕,如下所示:
<input type="button" name="btn" id="btn" value="Click me" onclick="ConfirmApp()"/>
而ConfirmApp已經被剝離了測試,所以現在它包含的是:
bOK = confirm("You clicked a popup. Did you mean to?"); return bOK;
程式碼對我來說很好,我認為它應該有效.唯一的想法是做不同的是把等待完成裡面使用對話方塊塊.不知道為什麼,但在我這樣做之前,我也有一些問題,有時它有時它不工作.而在等待直到存在的時候我不會使用時間限制.但是你可能已經嘗試過了.
例如:
using (new UseDialogOnce(ie.DialogWatcher, approveConfirmDialog)) { ie.Button(Find.ByName("btn")).ClickNoWait(); approveConfirmDialog.WaitUntilExists(); approveConfirmDialog.OKButton.Click(); ie.WaitForComplete(); }
http://stackoverflow.com/questions/882683/watin-handling-confirm-dialogs-with-confirmdialoghandler