在最近的 Firefox 升级到版本 47 之后,我们被迫安装 Marionette 扩展以继续使用 selenium webdriver,并且在我的情况下,还将 selenium 从 2.52 升级到 2.53。
我使用 python 版本的 selenium webdriver 来获取以 HTML 和 JavaScript 呈现的地图的高分辨率图像。以前这在 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 的浏览器,它允许整页截图?