private static void ClickBeamDesign(string windowtitle, string tabName, string buttonAutomationID, int processID) { try { UIAutomation_App.UIAutomationAction uAutomation = new UIAutomation_App.UIAutomationAction(); uAutomation.logTofile(uAutomation._eLogPtah, "Inside ClickBeamDesign"); uAutomation._processId = processID; AutomationElement winElement = uAutomation.GetUIAutomationWindow("title", windowtitle); uAutomation.uiAutomationCurrentParent = winElement; uAutomation.logTofile(uAutomation._eLogPtah, "Window Name: " + winElement.Current.Name); AutomationElement beamDesignTab = uAutomation.GetUIAutomationUltratab("name", tabName, -1); uAutomation.logTofile(uAutomation._eLogPtah, "Tab Name: " + beamDesignTab.Current.Name); SelectionItemPattern select = (SelectionItemPattern)beamDesignTab.GetCurrentPattern(SelectionItemPattern.Pattern); select.Select(); if (beamDesignTab.Current.IsOffscreen.ToString().ToLower() == "true") { uAutomation.logTofile(uAutomation._eLogPtah, "BeamDesign tab not visible"); AutomationElement btn = winElement.FindFirst(TreeScope.Descendants, new System.Windows.Automation.AndCondition( new System.Windows.Automation.PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Button), new System.Windows.Automation.PropertyCondition(AutomationElement.AutomationIdProperty, buttonAutomationID))); uAutomation.logTofile(uAutomation._eLogPtah, "Button:" + btn.Current.Name); InvokePattern value = (InvokePattern)btn.GetCurrentPattern(InvokePattern.Pattern); value.Invoke(); uAutomation.logTofile(uAutomation._eLogPtah, "Clicked Button"); } } catch (Exception ex) { throw new Exception(ex.Message); } }