public static void DragFileFromExplorer(string filePath, Point dropTarget) { var explorerProcess = Process.Start("explorer.exe", Path.GetDirectoryName(filePath)); if (explorerProcess == null) { throw new Utilities.CannotOpenExplorerException(); } Thread.Sleep(DefaultTimeout); AutomationElement explorerWindow = null; try { explorerWindow = ElementFinder.TryFindElement(AutomationElement.RootElement, Utilities.GetExplorerWindowTitle(filePath), "window", DefaultTimeout); Utilities.AlignWindowToRight(); ElementActions.InsertText(ElementFinder.TryFindElement(explorerWindow, "search box", "edit", DefaultTimeout), Path.GetFileName(filePath)); Thread.Sleep(1000); var file = ElementFinder.TryFindElement(explorerWindow, Path.GetFileName(filePath), "list item", DefaultTimeout); var filePoint = file.Current.BoundingRectangle.TopLeft; filePoint.Offset(file.Current.BoundingRectangle.Width / 2, file.Current.BoundingRectangle.Height / 2); ElementActions.DragDrop(filePoint, dropTarget); ElementActions.ClickElement(ElementFinder.TryFindElement(explorerWindow, "close", "button", DefaultTimeout)); } catch (Exception e) { ElementActions.ClickElement(ElementFinder.TryFindElement(explorerWindow, "close", "button", DefaultTimeout)); throw e; } }