Mit Selenium Marionette in Python einen Screenshot einer ganzen Seite machen

Nach dem letzten Firefox-Upgrade auf Version 47 mussten wir die Marionette-Erweiterung installieren, um weiterhin Selenium-Webtreiber verwenden zu können, und in meinem Fall auch Selen von 2.52 auf 2.53 aktualisieren.

Ich verwende die Python-Version von Selenium Webdriver, um hochauflösende Bilder von Karten zu erhalten, die in HTML und JavaScript gerendert wurden. Zuvor funktionierte dies in Firefox einwandfrei und die Screenshots konnten von der gesamten Seite aufgenommen werden, weit über die Abmessungen meines eigenen Bildschirms hinaus. Mit den letzten Änderungen wird der Screenshot jedoch nur von dem Bereich aufgenommen, der auf dem Bildschirm sichtbar ist. Ich benutze folgenden Code:

import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True

browser = webdriver.Firefox(capabilities=caps)
browser.get(html_file)
time.sleep(15)

browser.save_screenshot(image_name)
browser.quit()

Ich habe bereits überlegt: Downgrade, Zusammenfügen mehrerer Screenshots oder Umstieg auf Qgis. Ich würde jedoch eine elegantere Lösung bevorzugen, mit der ich weiterhin die neueste Version von Firefox und ungefähr dieselbe Methodik verwenden kann. Kennt jemand eine Lösung dafür? Vielleicht, indem man Selen austrickst und denkt, dass das Ansichtsfenster größer ist? oder mit einem anderen von linux unterstützten browser, der den ganzseitigen screenshot erlaubt?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage