public static treeelement[] _GetRootElements(Selector anchor) { var result = new List <treeelement>(); Javahook.Instance.refreshJvms(); if (anchor != null) { JavaSelector Javaselector = anchor as JavaSelector; if (Javaselector == null) { Javaselector = new JavaSelector(anchor.ToString()); } var elements = JavaSelector.GetElementsWithuiSelector(Javaselector, null, 1); foreach (var _ele in elements) { var e = new JavaTreeElement(null, true, _ele); result.Add(e); } return(result.ToArray()); } else { foreach (var jvm in Javahook.Instance.jvms) { result.Add(new JavaTreeElement(null, true, new JavaElement(jvm))); } } return(result.ToArray()); }
public static treeelement[] _GetRootElements(Selector anchor) { var result = new List <treeelement>(); Javahook.Instance.refreshJvms(); if (anchor != null) { if (!(anchor is JavaSelector Javaselector)) { Javaselector = new JavaSelector(anchor.ToString()); } var elements = JavaSelector.GetElementsWithuiSelector(Javaselector, null, 1); foreach (var _ele in elements) { var e = new JavaTreeElement(null, true, _ele); result.Add(e); } return(result.ToArray()); } else { foreach (var jvm in Javahook.Instance.jvms) { var item = new JavaTreeElement(null, true, new JavaElement(jvm)); result.Add(item); foreach (var e in Plugin.EnumRoots(jvm)) { item.Children.Add(new JavaTreeElement(item, true, e)); // result.Add(new JavaTreeElement(item, true, e)); } } } return(result.ToArray()); }
protected override void Execute(NativeActivityContext context) { var SelectorString = Selector.Get(context); SelectorString = OpenRPA.Interfaces.Selector.Selector.ReplaceVariables(SelectorString, context.DataContext); var sel = new JavaSelector(SelectorString); var timeout = TimeSpan.FromSeconds(3); var maxresults = MaxResults.Get(context); var from = From.Get(context); if (maxresults < 1) maxresults = 1; JavaElement[] elements = { }; var sw = new Stopwatch(); sw.Start(); do { var selector = new JavaSelector(SelectorString); elements = JavaSelector.GetElementsWithuiSelector(selector, from, maxresults); } while (elements.Count() == 0 && sw.Elapsed < timeout); Log.Debug(string.Format("OpenRPA.Java::GetElement::found {1} elements in {0:mm\\:ss\\.fff}", sw.Elapsed, elements.Count())); context.SetValue(Elements, elements); IEnumerator<JavaElement> _enum = elements.ToList().GetEnumerator(); context.SetValue(_elements, _enum); bool more = _enum.MoveNext(); if (more) { context.ScheduleAction(Body, _enum.Current, OnBodyComplete); } else { throw new Interfaces.ElementNotFoundException("Failed locating item"); } }
private void Highlight_Click(object sender, RoutedEventArgs e) { ModelItem loadFrom = ModelItem.Parent; string loadFromSelectorString = ""; JavaSelector anchor = null; while (loadFrom.Parent != null) { var p = loadFrom.Properties.Where(x => x.Name == "Selector").FirstOrDefault(); if (p != null) { loadFromSelectorString = loadFrom.GetValue <string>("Selector"); anchor = new JavaSelector(loadFromSelectorString); break; } loadFrom = loadFrom.Parent; } HighlightImage = Extensions.GetImageSourceFromResource(".x.png"); NotifyPropertyChanged("HighlightImage"); string SelectorString = ModelItem.GetValue <string>("Selector"); int maxresults = ModelItem.GetValue <int>("MaxResults"); if (maxresults < 1) { maxresults = 1; } var selector = new JavaSelector(SelectorString); var elements = new List <JavaElement>(); if (anchor != null) { var _base = JavaSelector.GetElementsWithuiSelector(anchor, null, 10); foreach (var _e in _base) { var res = JavaSelector.GetElementsWithuiSelector(selector, _e, maxresults); elements.AddRange(res); } } else { var res = JavaSelector.GetElementsWithuiSelector(selector, null, maxresults); elements.AddRange(res); } if (elements.Count() > maxresults) { elements = elements.ToList().Take(maxresults).ToList(); } if (elements.Count() > 0) { HighlightImage = Extensions.GetImageSourceFromResource("check.png"); NotifyPropertyChanged("HighlightImage"); } foreach (var ele in elements) { ele.Highlight(false, System.Drawing.Color.Red, TimeSpan.FromSeconds(1)); } }
private void Highlight_Click(object sender, RoutedEventArgs e) { string SelectorString = ModelItem.GetValue <string>("Selector"); int maxresults = ModelItem.GetValue <int>("MaxResults"); var selector = new JavaSelector(SelectorString); var elements = JavaSelector.GetElementsWithuiSelector(selector, null, maxresults); foreach (var ele in elements) { ele.Highlight(false, System.Drawing.Color.Red, TimeSpan.FromSeconds(1)); } }
protected override void StartLoop(NativeActivityContext context) { var SelectorString = Selector.Get(context); SelectorString = OpenRPA.Interfaces.Selector.Selector.ReplaceVariables(SelectorString, context.DataContext); var sel = new JavaSelector(SelectorString); var timeout = Timeout.Get(context); var maxresults = MaxResults.Get(context); var minresults = MinResults.Get(context); var from = From.Get(context); if (maxresults < 1) { maxresults = 1; } JavaElement[] elements = { }; var sw = new Stopwatch(); sw.Start(); do { var selector = new JavaSelector(SelectorString); elements = JavaSelector.GetElementsWithuiSelector(selector, from, maxresults); } while (elements.Count() == 0 && sw.Elapsed < timeout); Log.Debug(string.Format("OpenRPA.Java::GetElement::found {1} elements in {0:mm\\:ss\\.fff}", sw.Elapsed, elements.Count())); if (elements.Count() > maxresults) { elements = elements.Take(maxresults).ToArray(); } if (elements.Count() < minresults) { Log.Selector(string.Format("Windows.GetElement::Failed locating " + minresults + " item(s) {0:mm\\:ss\\.fff}", sw.Elapsed)); throw new ElementNotFoundException("Failed locating " + minresults + " item(s)"); } context.SetValue(Elements, elements); IEnumerator <JavaElement> _enum = elements.ToList().GetEnumerator(); context.SetValue(_elements, _enum); bool more = _enum.MoveNext(); if (more) { IncIndex(context); SetTotal(context, elements.Length); context.ScheduleAction(Body, _enum.Current, OnBodyComplete); } }
public override IElement[] GetElements(IElement fromElement = null, int maxresults = 1) { return(JavaSelector.GetElementsWithuiSelector(this, fromElement, maxresults)); }
public IElement[] GetElementsWithSelector(Selector selector, IElement fromElement = null, int maxresults = 1) { var result = JavaSelector.GetElementsWithuiSelector(selector as JavaSelector, fromElement, maxresults); return(result); }
protected override void StartLoop(NativeActivityContext context) { var SelectorString = Selector.Get(context); SelectorString = OpenRPA.Interfaces.Selector.Selector.ReplaceVariables(SelectorString, context.DataContext); var sel = new JavaSelector(SelectorString); var timeout = Timeout.Get(context); if (Timeout == null || Timeout.Expression == null) { timeout = TimeSpan.FromSeconds(3); } var maxresults = MaxResults.Get(context); var minresults = MinResults.Get(context); var from = From.Get(context); if (maxresults < 1) { maxresults = 1; } if (timeout.Minutes > 5 || timeout.Hours > 1) { Activity _Activity = null; try { var strProperty = context.GetType().GetProperty("Activity", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var strGetter = strProperty.GetGetMethod(nonPublic: true); _Activity = (Activity)strGetter.Invoke(context, null); } catch (Exception) { } if (_Activity != null) { Log.Warning("Timeout for Activity " + _Activity.Id + " is above 5 minutes, was this the intention ? calculated value " + timeout.ToString()); } else { Log.Warning("Timeout for on of your Java.GetElements is above 5 minutes, was this the intention ? calculated value " + timeout.ToString()); } } JavaElement[] elements = { }; var sw = new Stopwatch(); sw.Start(); do { var selector = new JavaSelector(SelectorString); elements = JavaSelector.GetElementsWithuiSelector(selector, from, maxresults); } while (elements.Count() == 0 && sw.Elapsed < timeout); Log.Debug(string.Format("OpenRPA.Java::GetElement::found {1} elements in {0:mm\\:ss\\.fff}", sw.Elapsed, elements.Count())); if (elements.Count() > maxresults) { elements = elements.Take(maxresults).ToArray(); } if (elements.Count() < minresults) { Log.Selector(string.Format("Windows.GetElement::Failed locating " + minresults + " item(s) {0:mm\\:ss\\.fff}", sw.Elapsed)); throw new ElementNotFoundException("Failed locating " + minresults + " item(s)"); } context.SetValue(Elements, elements); IEnumerator <JavaElement> _enum = elements.ToList().GetEnumerator(); context.SetValue(_elements, _enum); bool more = _enum.MoveNext(); if (more) { IncIndex(context); SetTotal(context, elements.Length); context.ScheduleAction(Body, _enum.Current, OnBodyComplete); } }