public override AutomationElement FindFirst(TreeScope treeScope, ConditionBase condition) { Automation.CheckConnected(); switch (condition) { case PropertyCondition xPropCondition: if (xPropCondition.PropertyConditionFlags != PropertyConditionFlags.None) { throw new NotImplementedException("PropertyConditionFlags not yet implemented!"); } switch (xPropCondition.Property.Id) { case AutomationElementIdentifiers.AutomationIdPropertyId: var xElemInfo = Automation.Client.FindFirstAutomationElementInWindow(mInfo, (string)xPropCondition.Value); return(new AutomationElement(new ControlElement(mInfo, condition, xElemInfo, Automation))); default: throw new Exception($"Property '{xPropCondition.Property.Name}' (#{xPropCondition.Property.Id}) not implemented!"); } default: throw new NotImplementedException(); } }
internal void Invoke() { Automation.CheckConnected(); switch (mFindCondition) { case PropertyCondition xPropCondition: if (xPropCondition.PropertyConditionFlags != PropertyConditionFlags.None) { throw new NotImplementedException("PropertyConditionFlags not yet implemented!"); } switch (xPropCondition.Property.Id) { case AutomationElementIdentifiers.AutomationIdPropertyId: Automation.Client.InvokeAutomationElementByAutomationIdInWindowController(mParentWindow, (string)xPropCondition.Value); return; default: throw new Exception($"Property '{xPropCondition.Property.Name}' (#{xPropCondition.Property.Id}) not implemented!"); } default: throw new NotImplementedException(); } }