Python/chromedriver: Screenshot-Größe vs. Fenstergröße

OP #5688332
Lesenswert?
• ▲
▼
Hallo zusammen,

mein Ziel ist es, einen Screenshot einer gerenderten HTML-Seite 
geskriptet zu erstellen. Momentan probiere ich es mit Python und 
Selenium mit dem Chrome- oder Firefox. Das Erstellen des Screenshots 
funktioniert grob, allerdings ist der Screenshot immer deutlich kleiner 
als die Fenstergröße. Ein (variabler) Rand wird immer abgezogen.

Leider finde ich keinen Parameter, der den Rand beschreibt. Wer hat 
Erfahrunng mit einem der beiden Renderer und kann einen Tipp geben?

So sieht es bislang aus:
1
from PIL import Image
2
import os
3
from selenium import webdriver
4

5

6
htmlfile = htmlfile = r"https://www.mikrocontroller.net/forum/all"
7

8
tempfile = r"./screenshot_temp.png"
9

10

11
width = 800
12
height = 600
13
margin_left = 0
14
margin_right = 0
15
margin_top = 0
16
margin_bottom = 0
17

18

19
# spaeter testen, was besser funktioniert:
20
#driver = webdriver.Firefox() 
21
driver = webdriver.Chrome('chromedriver')
22

23

24
driver.set_window_size(width+margin_left+margin_right, margin_top+height+margin_bottom)
25
driver.get(htmlfile)
26

27
screenshot = driver.save_screenshot(tempfile)
28
#driver.quit() # Zu Testzwecken Fenster nicht schließen
29

30

31
image = Image.open(tempfile).convert('RGBA')
32
image.show()
33
print(image.width, 'x', image.height)
34
# >>> 784 x 468

Viele Grüße

W.T.
Gast #5688579
Lesenswert?
• ▲
▼
Dein Problem klingt jetzt nicht so Exotisch für mich. Wenn ich google 
mit der query "selenium full page screenshot python" bekomme ich zum 
Beispiel diesen Code angezeigt 
https://gist.github.com/fabth/13e4a2e7cfbfde671b8fa81bbe9359fb löst der 
dein Problem? Auch Wenn es Python2 ist und ich persönlich Python3 
vorziehe. Sollte das vielleicht eine Basis sein mit der du dein Problem 
angehen kannst.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.