Здравствуйте!
Те, кто использовал WatiN, вероятно, также используемый DialogHandlers
.
Хорошо кто-то может учить меня, как я могу присвоить a DialogHandler
это обработает любое Окно предупреждений window.alert()
, из определенного экземпляра IE под управлением WatiN.
DialogHandler только должен нажать в кнопке OK для очень аварийного диалогового окна, в этом случае я думаю, что нам нужно AlertDialogHandler
то в основном единственное должно нажать кнопку OK.
AlertDialogHandler.OKButton.Click()
Я имею поиск сеть и нашел несколько примеров.. Но они работают в течение маленького промежутка времени или времени, которое Вы указываете, мне нужен тот, который будет работать навсегда, пока я не приму решение остановить его путем нажатия кнопки.
Это, как прослушивание моей головы в течение многих часов, любая справка ценится.Спасибо.
Примечание: Иногда аварийное диалоговое окно имеет две кнопки. Вот почему я действительно должен нажать кнопку OK, не только Закрыть диалоговое окно.
Создать класс:
public class OKDialogHandler : BaseDialogHandler
{
public override bool HandleDialog(Window window)
{
var button = GetOKButton(window);
if (button != null)
{
button.Click();
return true;
}
else
{
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);
}
}
После создания экземпляра IE
прикрепите к нему обработчик диалогового окна:
ie.AddDialogHandler(new OKDialogHandler());
Этот диалог обработчик будет обрабатывать все окна, содержащие кнопку с надписью «ОК», нажав на эту кнопку.