public override object DoRun() { var chromeHandle = Selenium.BrowserHandle; var clientPoint = new Point(200, 200); //UserInteropAdapter.ClickOnPoint(chromeHandle, clientPoint); Selenium.BringToFront(); Thread.Sleep(150); UserInteropAdapter.SendText(chromeHandle, $"PRGORILOCAL\\{UserName}\t{Password}\n", clientPoint); return(null); }
public override object DoRun() { var query = new LocationHeuristictSearchStrategy(Selenium); var result = query.DirectLookup(SearchedTagNames, VisibleTextOfTheButton, NeighbourToLookFrom, Direction, Order, LookForOrthogonalNeighboursOnly, exactMatchOnly: true); if (Interpreter?.IsAnalysis == true) { Console.Out.WriteColoredLine(ConsoleColor.Magenta, _instruction?.ToAnalysisString()); Console.Out.WriteColoredLine(ConsoleColor.Magenta, $"Main Result: \n\t{result.MainResult}\nAll results:\n\t{string.Join("\n\t", result.AllValidResults)}"); } if (result.Success == false) { throw new LookupFailureException(result, $"Failed {ToString()}.\nCannot find element {(Order > 0 ? (Order + 1).ToString() : "")}({result.AllValidResults.Count()} results found)"); } switch (Technique) { case Technique.Show: BrowserOverlay .HighlightElements((Order + 1).ToString(), Color.GreenYellow, result.MainResult) .HighlightElements((Order + 1).ToString(), Color.CadetBlue, result.AllValidResults.Except(new[] { result.AllValidResults.ElementAt(Order) })) .ShowUntilNextKeyword("Highlighted element will be Clicked"); return(new OverlayAnswer(BrowserOverlay.Artifacts, "Highlighting complete.")); case Technique.Javascript: Selenium.WebDriver.Click(result.MainResult.WebElement); break; case Technique.MouseAndKeyboard: Selenium.BringToFront(); var screenLocation = Selenium.PutElementOnScreen(result.MainResult.WebElement); if (Interpreter?.IsAnalysis == true) { BrowserOverlay .HighlightElements((Order + 1).ToString(), Color.GreenYellow, result.MainResult) .ShowFor(750, "Highlighted element will be Dragged"); } UserInteropAdapter.PressOnPoint(Selenium.BrowserHandle, screenLocation); if (Interpreter.IsAnalysis) { var oldPosition = Cursor.Position; var tempPoint = new Point(screenLocation.X, screenLocation.Y); UserBindings.ClientToScreen(Selenium.BrowserHandle, ref tempPoint); Cursor.Position = tempPoint; var steps = 50m; var xOffset = X / steps; var yOffset = Y / steps; for (int i = 0; i < steps; i++) { Cursor.Position = new Point((int)(tempPoint.X + i * xOffset), (int)(tempPoint.Y + i * yOffset)); Thread.Sleep(30); } Cursor.Position = oldPosition; } screenLocation.X += X; screenLocation.Y += Y; Thread.Sleep(20); UserInteropAdapter.ReleaseOnPoint(Selenium.BrowserHandle, screenLocation); Thread.Sleep(50); break; } return(new SuccessAnswer($"Performed {ToString()}")); }