コード例 #1
0
ファイル: Login.cs プロジェクト: ohomola/gears
        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);
        }
コード例 #2
0
ファイル: DragAndDrop.cs プロジェクト: ohomola/gears
        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()}"));
        }