J'ai beaucoup cherché mais je n'ai pas trouvé de solution. Voici ce qu'il en est une question similaire avec une solution possible en java.
Existe-t-il une solution similaire en Python ?
J'ai beaucoup cherché mais je n'ai pas trouvé de solution. Voici ce qu'il en est une question similaire avec une solution possible en java.
Existe-t-il une solution similaire en Python ?
J'ai converti la réponse de @randomphobia en une fonction. J'ai également utilisé la suggestion de @bummis d'utiliser location_once_scrolled_into_view
au lieu de location
afin de généraliser quelle que soit la taille de la page.
from selenium import webdriver
from PIL import Image
from io import BytesIO
def take_screenshot(element, driver, filename='screenshot.png'):
location = element.location_once_scrolled_into_view
size = element.size
png = driver.get_screenshot_as_png() # saves screenshot of entire page
im = Image.open(BytesIO(png)) # uses PIL library to open image in memory
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
im = im.crop((left, top, right, bottom)) # defines crop points
im.save(filename) # saves new cropped image
En voici les grandes lignes : https://gist.github.com/WittmannF/b714d3ceb7b6a5cd50002f11fb5a4929
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.