/// <summary> /// Кликает по заданной кнопке диалогового окна. /// </summary> /// <param name="dialogWindow"> /// Диалоговое окно. /// </param> /// <param name="buttonsType"> /// Тип набора кнопок диалогово окна. /// </param> /// <param name="targetButton"> /// Целевая кнопка. /// </param> public static void ClickButton( WindowAppElement dialogWindow, MessageBoxButton buttonsType, MessageBoxResult targetButton) { if (dialogWindow == null) { throw new ArgumentNullException("dialogWindow"); } var condition = new PropertyCondition(WindowPattern.IsModalProperty, true); var modalwindow = AutomationElementHelper.FindFirst(dialogWindow.Instance, TreeScope.Children, condition); if (modalwindow == null) { throw new CruciatusException("NOT CLICK BUTTON"); } string uid; if (targetButton == MessageBoxResult.None) { uid = CruciatusFactory.Settings.MessageBoxButtonUid.CloseButton; } else { switch (buttonsType) { case MessageBoxButton.OK: switch (targetButton) { case MessageBoxResult.OK: uid = CruciatusFactory.Settings.MessageBoxButtonUid.OkType.Ok; break; default: throw new CruciatusException("NOT CLICK BUTTON"); } break; case MessageBoxButton.OKCancel: switch (targetButton) { case MessageBoxResult.OK: uid = CruciatusFactory.Settings.MessageBoxButtonUid.OkCancelType.Ok; break; case MessageBoxResult.Cancel: uid = CruciatusFactory.Settings.MessageBoxButtonUid.OkCancelType.Cancel; break; default: throw new CruciatusException("NOT CLICK BUTTON"); } break; case MessageBoxButton.YesNo: switch (targetButton) { case MessageBoxResult.Yes: uid = CruciatusFactory.Settings.MessageBoxButtonUid.YesNoType.Yes; break; case MessageBoxResult.No: uid = CruciatusFactory.Settings.MessageBoxButtonUid.YesNoType.No; break; default: throw new CruciatusException("NOT CLICK BUTTON"); } break; case MessageBoxButton.YesNoCancel: switch (targetButton) { case MessageBoxResult.Yes: uid = CruciatusFactory.Settings.MessageBoxButtonUid.YesNoCancelType.Yes; break; case MessageBoxResult.No: uid = CruciatusFactory.Settings.MessageBoxButtonUid.YesNoCancelType.No; break; case MessageBoxResult.Cancel: uid = CruciatusFactory.Settings.MessageBoxButtonUid.YesNoCancelType.Cancel; break; default: throw new CruciatusException("NOT CLICK BUTTON"); } break; default: throw new CruciatusException("NOT CLICK BUTTON"); } } var buttonElement = new WindowAppElement(dialogWindow, modalwindow, null).FindElement(By.Uid(uid)); buttonElement.Click(); }
public static void ClickWithPressedKeys(this WindowAppElement element, List <VirtualKeyCode> keys) { keys.ForEach(key => CruciatusFactory.Keyboard.KeyDown(key)); element.Click(); keys.ForEach(key => CruciatusFactory.Keyboard.KeyUp(key)); }