wads
wads

Reputation: 135

Capture screenshot of minimized browser

I'm looking into having my program open a Selenium WebDriver browser, go into a specific page and take a screenshot of it. However, the window needs to be minimized in order to not interfere with our users too much. I have the WebDriver working fine, I just need to get a screenshot of it

Is this even possible to do so?

I looked into this, but it's far to advanced for me to understand what they're doing: Saving a screenshot of a window using C#, WPF, and DWM

Any help is appreciated!

Upvotes: 1

Views: 295

Answers (1)

Gregory L
Gregory L

Reputation: 476

Yes, it is possible to do using using OpenQA.Selenium.Chrome:

private ChromeDriver _driver;

public void Run()
{
    InitWebDriverInMinimizedWindow();

    // Your code that uses _driver

    TakeScreenshot(@"D:\Screenshots\screenshot001.jpg");
}

public void InitWebDriverInMinimizedWindow()
{
    var options = new ChromeOptions();

    // launch a browser without creating a window
    options.AddArgument("headless");
    _driver = new ChromeDriver(options);
}

public void TakeScreenshot(string fileName)
{
    try
    {
        Screenshot screenshot = ((ITakesScreenshot)_driver).GetScreenshot();
        screenshot.SaveAsFile(fileName, ScreenshotImageFormat.Jpeg);
    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        throw;
    }
}

Upvotes: 1

Related Questions