在最近的Firefox升级到版本47之后,我们被迫安装了木偶扩展以保持能够使用selenium webdriver,在我的例子中,还将selenium从2.52升级到2.53。
我使用selenium webdriver的python版本来获取用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的浏览器,允许完整的页面截图?
这是我用的,缝一下就行了:
代码也在这里:https://gist.github.com/fabtho/13e4a2e7cfbfde671b8fa81bbe9359fb
滚动/stich的问题是,设置为“display:fixed”的html节点在每次拍摄时都会重复。
看起来可以这样做:
结果很好。它是无头的,但对于正常模式可能会得到相同的结果。
相关问题 更多 >
编程相关推荐