ポップアップするダイアログで [OK] をクリックしようとしています。IE9 が WatiN のダイアログ ハンドラとうまく連携しないことを読みました。私は WatiN-2.1.0.1196-net-4.0 を使用しています。
以下は私の方法です。基本的に、アラートページに移動します。そのページでは、行ごとに個別に削除をクリックするか、複数のチェックボックスを選択して一括で削除できます。個々のアラート削除ボタンのコレクションの最初の削除ボタンを取得し、それが存在するかどうかを確認します。その場合は、[すべて選択] ボタンをクリックしてから、[選択したアラートをすべて削除] ボタンをクリックします。
その時点まではすべて機能しているようで、削除を確認するダイアログが表示されます。その後、メソッドは browser.waituntilexists() でタイムアウトします。
待機時間を増やしてみましたが、ハンドラーの種類をDialogHandler、ConfirmDialogHandler、AlertDialogHandlerなどに切り替えてみましたが、ポップアップするダイアログウィンドウが見つからないようです。
このダイアログを確認するには、回避策が必要です。
private void DeleteAlerts(Browser browser)
{
browser.GoTo(URLs.CompleteUrl + "/alerts.aspx?apid=" + PID);
while (browser.Page<AlertsAspx>().deleteMessage.Exists)
{
var handler = new ConfirmDialogHandler();
browser.Page<AlertsAspx>().SelectAll.Click();
using (new UseDialogOnce(browser.DialogWatcher, handler))
{
//Assert.Fail("Never Sees Dialog");
browser.Page<AlertsAspx>().Delete.ClickNoWait();
handler.WaitUntilExists(50);
handler.OKButton.Click();
browser.WaitForComplete();
}
}
}