Take screenshot of an element in Selenium
Selenium Python - Screenshot of an Element
In this tutorial, you will learn how to take the screenshot of a specific element in Selenium Python and save it to a specific path.
To take the screenshot of a single element in the webpage in Selenium Python, you can use screenshot() method of the element object.
Find the element, and call screenshot()
method on the element
object, and pass the location of the path as a string to which we would like to save the screenshot.
element.screenshot("path/to/screenshot.png")
Examples
In the following examples, we navigate to the following webpage at URL: /tmp/selenium/index-37.html, and take screenshots of the elements in it.
<html>
<body>
<h1>My Form</h1>
<form action="" id="myform">
<label for="fname">First name:</label>
<input type="text" id="fname" name="fname" value="Hero"><br><br>
<label for="lname">Last name:</label>
<input type="text" id="lname" name="lname" value="Super"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
1. Take screenshot of a form element
In the following example, we initialize a Chrome webdriver, navigate to a specific URL, take the screenshot of the form with id 'myform'
, and save the screenshot to a location.
Python Program
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
# Setup chrome driver
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.set_window_size(500, 500)
# Navigate to the url
driver.get('/tmp/selenium/index-37.html')
# Find form element
myform = driver.find_element(By.ID, 'myform')
# Take a screenshot of the form element
myform.screenshot("screenshot.png")
# Close the driver
driver.quit()
Screenshot
2. Take screenshot of a heading
In the following example, we initialize a Chrome webdriver, navigate to given URL, take the screenshot of the first heading h1
and save the screenshot as a PNG.
Python Program
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
# Setup chrome driver
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.set_window_size(500, 500)
# Navigate to the url
driver.get('/tmp/selenium/index-37.html')
# Find form element
myform = driver.find_element(By.ID, 'myform')
# Take a screenshot of the form element
myform.screenshot("screenshot.png")
# Close the driver
driver.quit()
Screenshot
Summary
In this Python Selenium tutorial, we have given instructions on how to take the screenshot of a specific element in a webpage, and save it a to specific location, using screenshot() method of the element object.