public ScreenshotTaker(IWebDriver driver, ScreenshotTakerConfiguration configuration) { Driver = driver; Executor = driver as IJavaScriptExecutor; TakesScreenshot = driver as ITakesScreenshot; PageSize = driver.PageSize(); ViewSize = driver.ViewPort(); ViewSize = ApplyOverlap(PageSize, ViewSize, configuration); HorizontalSnaps = Math.Ceiling((double)PageSize.Width / ViewSize.Width); VerticalSnaps = Math.Ceiling((double)PageSize.Height / ViewSize.Height); InitialOffsetX = OffsetX = Driver.GetOffsetX(); InitialOffsetY = OffsetY = Driver.GetOffsetY(); }
Size ApplyOverlap(Size pageSize, Size viewSize, ScreenshotTakerConfiguration configuration) => Size.Subtract(viewSize, new Size( pageSize.Width < viewSize.Width ? 0 : configuration.ScreenshotTakeHorizontalOverlap, pageSize.Height < viewSize.Height ? 0 : configuration.ScreenshotTakeVerticalOverlap));