private string GetScreenshotFolder(BrowserTestContext context)
        {
            var browserName = context.BrowserType.ToString();
            var serverSide  = context.ServerSide ? "Server" : "Client";
            var path        = Path.Combine(BasePath, browserName, serverSide, context.ClassName, context.TestName);

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            return(path);
        }
        public string TakeScreenshot(ITakesScreenshot driver, BrowserTestContext context, string name)
        {
            if (driver == null)
            {
                throw new ArgumentNullException(nameof(driver));
            }

            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException(nameof(name));
            }

            var screenshot       = driver.GetScreenshot();
            var screenshotFolder = GetScreenshotFolder(context);
            var screenshotPath   = Path.Combine(screenshotFolder, name + ".png");

            screenshot.SaveAsFile(screenshotPath);
            return(screenshotPath);
        }