最近の Firefox のバージョン 47 へのアップグレード後、Selenium Webdriver を引き続き使用できるように Marionette 拡張機能をインストールする必要がありました。また、私の場合は Selenium を 2.52 から 2.53 にアップグレードしました。
HTML および JavaScript でレンダリングされた地図の高解像度画像を取得するために、selenium webdriver の Python バージョンを使用します。以前は、これは Firefox で正常に機能し、自分の画面のサイズをはるかに超えて、ページ全体のスクリーンショットを撮ることができました。ただし、最近の変更により、スクリーンショットは画面に表示されている領域のみが撮影されます。次のコードを使用します。
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()
ダウングレード、複数のスクリーンショットのつなぎ合わせ、Qgis への切り替えなど、すでに検討しています。ただし、Firefox の最新バージョンとほぼ同じ方法論を使い続けることができる、より洗練されたソリューションを希望します。誰もこれに対する解決策を知っていますか? おそらく、ビューポートが大きいと考えてセレンをだますことによって?または、ページ全体のスクリーンショットを許可する別の Linux 対応ブラウザを使用しますか?