private static void AnimateMouseThroughPoints(IEnumerable <Point> points) { foreach (var point in points) { Mouse.MoveTo(point); Delay(5); } }
public void Set_focus_on_empty_grid() { WpfTestHelper.WithWindow2(async w => { var grid = new DataGrid2(); w.Content = grid; await grid.WaitLoaded(); Assert.IsFalse(grid.IsKeyboardFocusWithin); var point = grid.PointToScreen(new Point(3, 3)); Mouse.MoveTo(new System.Drawing.Point((int)point.X, (int)point.Y)); Mouse.Click(MouseButton.Left); await w.WaitIdle(); Assert.IsTrue(grid.IsKeyboardFocusWithin); }); }
public static void ScrambleAround(bool withMainWindow = true) { DocumentHelper.ReadIndexFile(); ElementsInScrambleAround.Clear(); var allAutomationElementsNames = DocumentHelper.HashFileDict.Values; foreach (var name in allAutomationElementsNames) { ElementsInScrambleAround.Add(GetElementByHierarchy(name, withMainWindow)); } var validElementsToScramble = ElementsInScrambleAround.Where(x => x != null); ElementsInScrambleAround = validElementsToScramble.ToList(); foreach (var elem in ElementsInScrambleAround) { if (elem != null && elem.Current.IsEnabled == true && elem.Current.IsKeyboardFocusable == true) { if (ElementsInScrambleAround.Where(x => x.Current.IsEnabled).Count() == 0) { var activeWindows = GetElementCollectionAsList(FindAllControlsOfType(MainWindow, ControlType.Window)).Where(x => x.Current.IsEnabled); foreach (var window in activeWindows) { RecordElements(window, GetHierarchyOfElement(window)); ScrambleAround(); } } //TakeStep(elem); // Just placeholder junk try { if (elem.GetClickablePoint() != null) { Mouse.MoveTo(elem.GetClickablePoint().ToDrawingPoint()); Mouse.Click(MouseButton.Left); } } catch (Exception) { //throw; } } } }
private static void DrawSpirographWaveOnCanvas(AutomationElement canvasElement) { var bounds = canvasElement.Current.BoundingRectangle; var centerX = (int)(bounds.X + bounds.Width / 2); int centerY = (int)(bounds.Y + bounds.Height / 2); var points = GetPointsForSpirograph(centerX, centerY, 1.02, 5, 2, 0, 300); Mouse.MoveTo(points.First()); Mouse.Down(MouseButton.Left); AnimateMouseThroughPoints(points); Mouse.Up(MouseButton.Left); }
private static void AutomateMainWindow(AutomationElement mainWindow) { // find the Paint.Net drawing Canvas var descendentPath = new[] { "tileModules" }; var canvas = mainWindow.FindDescendentByIdPath(descendentPath);// new[] { "tileModules", "workspacePanel", "DocumentView", "scrollableCanvasControl", "canvasView" }); DrawSpirographWaveOnCanvas(canvas); // the the audience appreciate the masterpiece! Delay(5000); var closeButton = mainWindow.FindDescendentByIdPath(new[] { "TitleBar", "Close" }); closeButton.GetInvokePattern().Invoke(); // give chance for the close dialog to open Delay(); var dontSaveButton = mainWindow.FindDescendentByNamePath(new[] { "Unsaved Changes", "Don't Save" }); Mouse.MoveTo(dontSaveButton.GetClickablePoint().ToDrawingPoint()); Mouse.Click(MouseButton.Left); }