How can I take a screenshot with Selenium WebDriver? How can I take a screenshot with Selenium WebDriver? selenium selenium

How can I take a screenshot with Selenium WebDriver?


Java

Yes, it is possible. The following example is in Java:

WebDriver driver = new FirefoxDriver();driver.get("http://www.google.com/");File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);// Now you can do whatever you need to do with it, for example copy somewhereFileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));


Python

Each WebDriver has a .save_screenshot(filename) method. So for Firefox, it can be used like this:

from selenium import webdriverbrowser = webdriver.Firefox()browser.get('http://www.google.com/')browser.save_screenshot('screenie.png')

Confusingly, a .get_screenshot_as_file(filename) method also exists that does the same thing.

There are also methods for: .get_screenshot_as_base64() (for embedding in HTML) and .get_screenshot_as_png()(for retrieving binary data).

And note that WebElements have a .screenshot() method that works similarly, but only captures the selected element.


C#

public void TakeScreenshot(){    try    {                    Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();        ss.SaveAsFile(@"D:\Screenshots\SeleniumTestingScreenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);    }    catch (Exception e)    {        Console.WriteLine(e.Message);        throw;    }}