Taking screenshots with Selenium WebDriver in Python
✅ 1. Basic Screenshot of the Entire Page
python
Copy
Edit
from selenium import webdriver
driver = webdriver.Chrome() # or Firefox, Edge, etc.
driver.get("https://example.com")
# Take a screenshot
driver.save_screenshot("screenshot.png") # Saves to current directory
driver.quit()
✅ 2. Screenshot Using get_screenshot_as_file()
python
Copy
Edit
driver.get_screenshot_as_file("screenshot2.png")
Equivalent to save_screenshot().
✅ 3. Screenshot as Bytes or Base64 (e.g., for logging, embedding)
python
Copy
Edit
# As bytes
screenshot_bytes = driver.get_screenshot_as_png()
# As base64 string
screenshot_base64 = driver.get_screenshot_as_base64()
✅ 4. Screenshot of a Specific Element
python
Copy
Edit
from selenium.webdriver.common.by import By
element = driver.find_element(By.ID, "element_id")
element.screenshot("element_screenshot.png")
๐ก Only available in recent versions of Selenium (>= 3.141).
๐ Optional: Wait for Elements to Load (Before Screenshot)
Use WebDriverWait to ensure the page or element is ready:
python
Copy
Edit
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "element_id")))
driver.save_screenshot("after_wait.png")
๐ Saving to a Custom Folder
python
Copy
Edit
import os
os.makedirs("screenshots", exist_ok=True)
driver.save_screenshot("screenshots/my_screenshot.png")
Let me know if you want to:
Integrate this into a test framework (e.g., unittest or pytest)
Automatically name screenshots by timestamp or test name
Capture full-page screenshots using browser extensions or other tools
Learn Selenium Python Training in Hyderabad
Read More
How to Handle Multiple Browser Tabs or Windows in Selenium
Waits in Selenium: Implicit vs Explicit Waits Explained
Automating Form Filling Using Selenium and Python
Visit Our Quality Thought Training in Hyderabad
Subscribe by Email
Follow Updates Articles from This Blog via Email
No Comments