Example #1
0
        async public Task <CDPResponse> InsertText(string cssSelector, string text)
        {
            CDPResponse cdpr = new CDPResponse();

            try
            {
                long docNodeId = GetDocNodeID();

                var qs = await chromeSession.SendAsync(new QuerySelectorCommand
                {
                    NodeId   = docNodeId,
                    Selector = cssSelector
                });

                var elementNodeId = qs.Result.NodeId;

                var sv = await chromeSession.SendAsync(new FocusCommand
                {
                    NodeId = elementNodeId
                });

                var it = await chromeSession.SendAsync(new Chrome.Input.InsertTextCommand
                {
                    Text = text
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                cdpr.ErrorMessage = ex.Message;
            }
            return(cdpr);
        }
Example #2
0
        async public Task <CDPResponse> GetNodeScreenshot(string cssSelector, string pathForSave)
        {
            long nodeId = await GetNodeId(cssSelector);

            CDPResponse resp = await GetNodeScreenshot(nodeId, pathForSave);

            return(resp);
        }
Example #3
0
        async public Task <CDPResponse> Click(string cssSelector)
        {
            CDPResponse cdpr = new CDPResponse();

            try
            {
                long docNodeId = GetDocNodeID();
                var  qsButton  = chromeSession.SendAsync(new QuerySelectorCommand
                {
                    NodeId   = docNodeId,
                    Selector = cssSelector
                }).Result;
                var elementNodeId = qsButton.Result.NodeId;

                var elementBox = chromeSession.SendAsync(new GetBoxModelCommand
                {
                    NodeId = elementNodeId
                });
                var elementBoxRes = elementBox.Result.Result.Model;

                double leftBegin = elementBoxRes.Border[0];
                double leftEnd   = elementBoxRes.Border[2];
                double topBegin  = elementBoxRes.Border[1];
                double topEnd    = elementBoxRes.Border[5];

                double x = Math.Round((leftBegin + leftEnd) / 2, 2);
                double y = Math.Round((topBegin + topEnd) / 2, 2);

                var click = chromeSession.SendAsync(new Chrome.Input.DispatchMouseEventCommand
                {
                    Type       = "mousePressed",
                    X          = x,
                    Y          = y,
                    ClickCount = 1,
                    Button     = "left"
                });

                await Task.Delay(100);

                var clickReleased = chromeSession.SendAsync(new Chrome.Input.DispatchMouseEventCommand
                {
                    Type       = "mouseReleased",
                    X          = x,
                    Y          = y,
                    ClickCount = 1,
                    Button     = "left"
                });

                Console.WriteLine("midle " + x + " " + y);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                cdpr.ErrorMessage = ex.Message;
            }
            return(cdpr);
        }
Example #4
0
        async public Task <CDPResponse> GetNodeScreenshot(long nodeId, string pathForSave)
        {
            CDPResponse cdpr = new CDPResponse();

            try
            {
                var box = await chromeSession.SendAsync(new GetBoxModelCommand
                {
                    NodeId = nodeId
                });

                var boxRes = box.Result.Model;

                double leftBegin = boxRes.Border[0];
                double leftEnd   = boxRes.Border[2];
                double topBegin  = boxRes.Border[1];
                double topEnd    = boxRes.Border[5];

                var screenshot = await chromeSession.SendAsync(new CaptureScreenshotCommand { Format = "png" });

                var byteArr = Convert.FromBase64String(screenshot.Result.Data);
                //File.WriteAllBytes("outputButton.png", byteArr);

                int leftTopX = Convert.ToInt32(leftBegin);
                int leftTopY = Convert.ToInt32(topBegin);
                int X        = Convert.ToInt32(leftEnd - leftBegin);
                int Y        = Convert.ToInt32(topEnd - topBegin);

                Rectangle rectangle = new Rectangle(leftTopX, leftTopY, X, Y);
                //Bitmap bmp = new Bitmap("outputButton.png");

                Bitmap bmp;
                using (var ms = new MemoryStream(byteArr))
                {
                    bmp = new Bitmap(ms);
                }
                Bitmap bmp2 = bmp.Clone(rectangle, PixelFormat.Format64bppPArgb);
                bmp2.Save(pathForSave, ImageFormat.Jpeg);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                cdpr.ErrorMessage = ex.Message;
            }
            return(cdpr);
        }