Take Screenshot

Take a screenshot of the current viewport/window/page

Example Usage

// Java
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

# Python
screenshotBase64 = self.driver.get_screenshot_as_base64()

// Javascript
// webdriver.io example
let screenshot = driver.screenshot();

// wd example
let screenshot = await driver.takeScreenshot();

# Ruby
# ruby_lib example
driver.screenshot_as(:base64) # via core_lib

# ruby_lib_core example

// TODO PHP sample

// C#
// TODO C# sample


Takes a screenshot of the viewport in a native context (iOS, Android) and takes a screenshot of the window in web context

Note that some platforms may have settings that prevent screenshots from being taken, for security reason. One such feature is the Android FLAG_SECURE layout parameter


Appium Server

Platform Driver Platform Versions Appium Version Driver Version
iOS XCUITest 9.3+ 1.6.0+ All
UIAutomation 8.0 to 9.3 All All
Android Espresso ?+ 1.9.0+ All
UiAutomator2 ?+ 1.6.0+ All
UiAutomator 4.2+ All All
Mac Mac ?+ 1.6.4+ All
Windows Windows 10+ 1.6.0+ All

Appium Clients

Language Support Documentation
Java All seleniumhq.github.io
Python All selenium-python.readthedocs.io
Javascript (WebdriverIO) All
Javascript (WD) All github.com
Ruby All www.rubydoc.info
PHP All github.com
C# All github.com

HTTP API Specifications


GET /wd/hub/session/:session_id/screenshot

URL Parameters

name description
session_id ID of the session to route the command to

JSON Parameters



The screenshot as a base64 encoded PNG (string)

See Also