protected override void Execute(CodeActivityContext context) { this.table = new DataTable(); bool roleMatched = false; List <string> unusedHdrNames = new List <string>(); string[] userHeaderNames = UserHeaderNames.Get(context); UiElement _table = Element.Get <UiElement>(context); if (_table == null) { throw new ArgumentException("Element can not be null, please check input Element value"); } foreach (string role in roles) { if (roleMatched) //이미 데이터를 추출했다면 다음 role에 대해서 검사하지 않도록 { break; } UiElement[] rows = _table.FindAll(FindScope.FIND_CHILDREN, new UiPath.Core.Selector(GetSelectorType("head", role))); if (rows == null) { System.Console.Out.WriteLine(" Find Children with <ctrl name='{0}' role='{1}' /> was failed, no child element exist", "head", role); continue; } roleMatched = true; //우선 테이블 헤더부분을 만들어 내고 if (userHeaderNames is null) { BuildTableHeaderFromUiElement(this.table, rows, unusedHdrNames); } else { BuildTableHeaderFromUserInput(this.table, userHeaderNames); string[] excNames = ExcludeHeaderNames.Get(context); if (!(excNames is null)) { foreach (string name in excNames) { unusedHdrNames.Add(name); } } } //테이블 본문을 만들어 낸나. rows = _table.FindAll(FindScope.FIND_CHILDREN, new UiPath.Core.Selector(GetSelectorType("body", role))); BuildTableBodyFromUiElement(this.table, rows, unusedHdrNames); } // 최종 결과 table 할당 Table.Set(context, this.table); }
public override void DoExecute() { AutomationElement a = UiElement.AutomationElement; ExpandCollapsePattern expandCollapsePattern = a.GetCurrentPattern(ExpandCollapsePattern.Pattern) as ExpandCollapsePattern; expandCollapsePattern.Expand(); var cbxEditItems = UiElement.FindAll(TreeScope.Subtree, new System.Windows.Automation.PropertyCondition(AutomationElement.ClassNameProperty, "ComboBoxEditItem")); switch (PlaybackObject.action) { case "SetText": try { var Editor = a.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.AutomationIdProperty, "PART_Editor")); ((ValuePattern)Editor.GetCurrentPattern(ValuePattern.Pattern)).SetValue(PlaybackObject.text); expandCollapsePattern.Collapse(); Result = true; } catch (Exception) { Result = false; //throw; } break; case "Select": try { if (cbxEditItems[PlaybackObject.itemIndex].AutomationElement.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.ClassNameProperty, "CheckEdit")) != null) { var checkBox = cbxEditItems[PlaybackObject.itemIndex].FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.ClassNameProperty, "CheckEdit")); checkBox.AsCheckBox().Click(); SendKeys.SendWait("{ENTER}"); } else { cbxEditItems[PlaybackObject.itemIndex].AutomationElement.SelectionItemPattern().Select(); expandCollapsePattern.Collapse(); } Result = true; } catch (Exception) { Result = false; //throw; } break; default: Result = false; break; } //expandCollapsePattern.Collapse(); }