Reputation: 135
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
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