public void GetItemLocationWhenWindowPositionChanges() { WindowItemsMap windowsItemsMap = WindowItemsMap.Create(InitializeOption(), new Point(20, 20)); windowsItemsMap.Add(new Point(27, 27), SearchCriteria.ByAutomationId("foo")); windowsItemsMap.Save(); windowsItemsMap = WindowItemsMap.Create(InitializeOption(), new Point(5, 5)); Assert.Equal(new Point(12, 12), windowsItemsMap.GetItemLocation(SearchCriteria.ByAutomationId("foo"))); windowsItemsMap.CurrentWindowPosition = new Point(10, 10); Assert.Equal(new Point(17, 17), windowsItemsMap.GetItemLocation(SearchCriteria.ByAutomationId("foo"))); }
public void GetItemLocation() { WindowItemsMap windowItemsMap = WindowItemsMap.Create(InitializeOption(), RectX.UnlikelyWindowPosition); windowItemsMap.Add(new Point(1, 1), SearchCriteria.ByAutomationId("foo")); Assert.Equal(new Point(1, 1), windowItemsMap.GetItemLocation(SearchCriteria.ByAutomationId("foo"))); }
public virtual IUIItem Get(ContainerItemFactory containerItemFactory, SearchCriteria searchCriteria, ActionListener actionListener) { WhiteLogger.Instance.DebugFormat("Finding item based on criteria: ({0}) on ({1})", searchCriteria, initializeOption.Identifier); Point location = windowItemsMap.GetItemLocation(searchCriteria); if (location.Equals(RectX.UnlikelyWindowPosition)) { WhiteLogger.Instance.Debug("[PositionBasedSearch] Could not find based on position, finding using search."); return(Create(containerItemFactory, searchCriteria, actionListener)); } AutomationElement automationElement = AutomationElementX.GetAutomationElementFromPoint(location); if (automationElement != null && searchCriteria.AppliesTo(automationElement)) { IUIItem item = new DictionaryMappedItemFactory().Create(automationElement, actionListener, searchCriteria.CustomItemType); return(UIItemProxyFactory.Create(item, actionListener)); } WhiteLogger.Instance.DebugFormat("[PositionBasedSearch] UIItem {0} changed its position, finding using search.", searchCriteria); return(Create(containerItemFactory, searchCriteria, actionListener)); }
public void GetItemLocationWhenNotPresent() { WindowItemsMap windowItemsMap = WindowItemsMap.Create(InitializeOption(), RectX.UnlikelyWindowPosition); Assert.Equal(RectX.UnlikelyWindowPosition, windowItemsMap.GetItemLocation(SearchCriteria.ByText("foo"))); }