diff --git a/CefSharp.Example/DevTools/DevToolsExtensions.cs b/CefSharp.Example/DevTools/DevToolsExtensions.cs index af1aa9aba8..b57cf012f5 100644 --- a/CefSharp.Example/DevTools/DevToolsExtensions.cs +++ b/CefSharp.Example/DevTools/DevToolsExtensions.cs @@ -1,6 +1,5 @@ using System; using System.Threading.Tasks; -using Newtonsoft.Json; namespace CefSharp.Example.DevTools { @@ -15,42 +14,14 @@ public static class DevToolsExtensions /// png encoded image as byte[] public static async Task CaptureScreenShotAsPng(this IWebBrowser chromiumWebBrowser) { - //if (!browser.HasDocument) - //{ - // throw new System.Exception("Page hasn't loaded"); - //} - - var browser = chromiumWebBrowser.GetBrowser(); - - if (browser == null || browser.IsDisposed) - { - throw new Exception("browser is Null or Disposed"); - } - - //var param = new Dictionary - //{ - // { "format", "png" }, - //} - //Make sure to dispose of our observer registration when done - using (var devToolsClient = browser.GetDevToolsClient()) + //If you need to make multiple calls then reuse the devtools client + //and Dispose when done. + using (var devToolsClient = chromiumWebBrowser.GetDevToolsClient()) { - const string methodName = "Page.captureScreenshot"; - - var result = await devToolsClient.ExecuteDevToolsMethodAsync(methodName); - - dynamic response = JsonConvert.DeserializeObject(result.ResponseAsJsonString); - - //Success - if (result.Success) - { - return Convert.FromBase64String((string)response.data); - } - - var code = (string)response.code; - var message = (string)response.message; + var result = await devToolsClient.Page.CaptureScreenshotAsync(); - throw new Exception(code + ":" + message); + return result.Data; } } }