这篇文章与此相关:
Python selenium 屏幕截图无法获取整个页面
PhantomsJS 的解决方案似乎有效:
driver = webdriver.PhantomJS()
driver.maximize_window()
driver.get('http://www.angelfire.com/super/badwebs/')
scheight = .1
while scheight < 9.9:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
scheight += .01
driver.save_screenshot('angelfire_phantomjs.png')
然而,该解决方案是从 2014 年开始的,PhantomJS 同时已被弃用。我收到以下错误消息:
...
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
如果我尝试适应例如Firefox 无头版是这样的:
from selenium import webdriver
firefox_options = webdriver.FirefoxOptions()
firefox_options.set_headless()
firefox_driver = webdriver.Firefox(firefox_options=firefox_options)
firefox_driver.get('http://www.angelfire.com/super/badwebs/')
scheight = .1
while scheight < 9.9:
firefox_driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
scheight += .01
firefox_driver.save_screenshot('angelfire_firefox.png')
制作了屏幕截图,但不是整个页面。
有什么想法可以让它与 Firefox 或 Chrome headless 一起使用吗?
(P.S.我还发现了这篇文章:
使用 Selenium Python (chromedriver) 截取整页屏幕截图)
但这似乎不是一个通用的解决方案,而且要复杂得多。)