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); }
async public Task <CDPResponse> GetNodeScreenshot(string cssSelector, string pathForSave) { long nodeId = await GetNodeId(cssSelector); CDPResponse resp = await GetNodeScreenshot(nodeId, pathForSave); return(resp); }
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); }
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); }