Here’s how to save images in Chrome browser using Selenium. The API has element.screenshot_as_png() method but apparently it’s not implemented at the moment.
With some minor changes to this answer I can save a image via the browser:
from selenium import webdriver
from PIL import Image
#chrome_options = ...
#chrome = webdriver.Chrome(chrome_options=chrome_options)
#element = chrome.find_element_by_id('some_id')
def save_image(chrome, element, save_path):
# in case the image isn't isn't in the view yet
location = element.location_once_scrolled_into_view
size = element.size
# saves screenshot of entire page
chrome.save_screenshot(save_path)
# uses PIL library to open image in memory
image = Image.open(save_path)
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
# defines crop points
image = image.crop((left, top, right, bottom))
# saves new cropped image
image.save(save_path, 'png') 🙂
