public void PressDialogButton(string dialogAutomationName, string buttonAutomationName) { var dialogAutomationElement = DialogHelpers.FindDialog(GetDTE().MainWindow.HWnd, dialogAutomationName, isOpen: true); if (dialogAutomationElement == null) { throw new InvalidOperationException($"Expected the {dialogAutomationName} dialog to be open, but it is not."); } Condition condition = new PropertyCondition(AutomationElement.AutomationIdProperty, buttonAutomationName); var buttonAutomationElement = dialogAutomationElement.FindFirst(TreeScope.Descendants, condition); if (buttonAutomationElement == null) { throw new InvalidOperationException($"Could not find the {buttonAutomationName} button in the {dialogAutomationName} dialog"); } if (buttonAutomationElement.TryGetCurrentPattern(InvokePattern.Pattern, out var invokePattern)) { (invokePattern as InvokePattern).Invoke(); } else { throw new InvalidOperationException($"The element {buttonAutomationName} does not have an InvokePattern. Please make sure that it is the correct control"); } }
public void VerifyDialog(string dialogAutomationId, bool isOpen) { var dialogAutomationElement = DialogHelpers.FindDialog(GetDTE().MainWindow.HWnd, dialogAutomationId, isOpen); if ((isOpen && dialogAutomationElement == null) || (!isOpen && dialogAutomationElement != null)) { throw new InvalidOperationException($"Expected the {dialogAutomationId} dialog to be {(isOpen ? "open" : "closed")}, but it is not."); } }
public void DialogSendKeys(string dialogAutomationName, string keys) { var dialogAutomationElement = DialogHelpers.FindDialog(GetDTE().MainWindow.HWnd, dialogAutomationName, isOpen: true); if (dialogAutomationElement == null) { throw new InvalidOperationException($"Expected the {dialogAutomationName} dialog to be open, but it is not."); } dialogAutomationElement.SetFocus(); SendKeys.SendWait(keys); }