私はたくさんの異なるウェブサイトをナビゲートするのにWatinを使用しています。そして、私は偉大な解決策hereを使って自動的にすべてのjavascriptとそのボックスのポップアップでokをクリックします。Watin&IE9 - okボタンをクリック
問題は、この解決策はie6-ie8でもうまく動作しますが、IE9では機能しなくなってしまうことです。
誰にでもIE9を自動クリック/終了する方法に関する提案はありますか?
(私は最新のWatinリリースを使用して、以下のコードだ)
public class something {
public something() {
IE browser = new IE("about:blank");
addHandlers(browser);
.. do stuff with browser
}
//Just click ok to everything
private void addHandlers(Browser browser)
{
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.AlertAndConfirmDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.AlertDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.CertificateWarningHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.CloseIEDialogHandler(false));
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.ConfirmDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.DialogHandlerHelper());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.FileDownloadHandler("me.htm"));
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.FileUploadDialogHandler("me.htm"));
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.PrintDialogHandler(WatiN.Core.DialogHandlers.PrintDialogHandler.ButtonsEnum.Cancel));
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.PromptDialogHandler(false));
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.RefreshWarningDialogHandler(false));
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.ReturnDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.SecurityAlertDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.SimpleJavaDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.SecurityAlertDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.AlertDialogHandler());
browser.AddDialogHandler(new WatiN.Core.DialogHandlers.SimpleJavaDialogHandler());
browser.AddDialogHandler(new OKDialogHandler());
}
}
public class OKDialogHandler : WatiN.Core.DialogHandlers.BaseDialogHandler
{
public override bool HandleDialog(Window window)
{
var button = GetOKButton(window);
button.Click();
return false;
}
public override bool CanHandleDialog(Window window)
{
return GetOKButton(window) != null;
}
private WinButton GetOKButton(Window window)
{
var windowButton = new WindowsEnumerator().GetChildWindows(window.Hwnd, w => w.ClassName == "Button" && new WinButton(w.Hwnd).Title == "OK").FirstOrDefault();
if (windowButton == null)
return null;
else
return new WinButton(windowButton.Hwnd);
}
}
davidのコードを掃除していただきありがとうございます。フォーマットする際に問題が発生しました – chris
WatiNを頻繁に使用し、サポートが安定する前にIE9にアップグレードするのを待っています...ダウングレードすることをおすすめします。 –