【问题标题】:Selenium PhantomJS webdriver get partial screenshotSelenium PhantomJS webdriver 获取部分截图
【发布时间】:2017-12-13 08:20:32
【问题描述】:

此代码保存完整的网页,但我只需要保存用户看到的第一个视图(无需向下滚动)。有可能吗?

browser = webdriver.PhantomJS()
browser.set_window_size(1920, 1080)
browser.set_page_load_timeout(60)
browser.get(url)
browser.save_screenshot(png_path)

更新:

这是https://github.com/keras-team/keras/issues/3223save_screenshot 示例,但我只是在寻找用户在加载页面时可以看到的第一个视图。

【问题讨论】:

  • 你能详细说明need to save just first view的意思吗?

标签: python selenium phantomjs screenshot


【解决方案1】:

要保存用户看到的第一个view,您必须通过默认设置为DesiredCapabilities调整pageLoadStrategy的配置>normalnone 如下:

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

caps = DesiredCapabilities().PHANTOMJS.copy()
caps["pageLoadStrategy"] = "none"
browser = webdriver.PhantomJS(desired_capabilities=caps, executable_path=r'C:\path\to\bin\phantomjs.exe')
browser.set_window_size(1920, 1080)
browser.set_page_load_timeout(60)
browser.get("https://accounts.google.com/signin")
browser.save_screenshot('./Screenshots/filename.png')

您可以在此处找到有关pageLoadStrategy 的详细讨论。

【讨论】:

  • 好像不行,例如我试过https://github.com/keras-team/keras/issues/3223,它保存了完整的html页面的截图。
  • @mrgloom 但我想你的问题是关于第一个视图不是完整视图。所以我的解决方案是基于Selenium
  • 我不确定您所说的“第一视图”是什么意思,但用我的术语来说,第一视图是整页的上半部分。
  • @mrgloom 那么你自己的看起来很完美的代码有什么问题呢?可以分享一下网址吗?
  • 问题是保存完整的 html 页面,但我只需要它的上部,我显然无法加载整个页面,然后出于性能原因裁剪上部。测试网址:https://github.com/keras-team/keras/issues/3223
猜你喜欢
  • 1970-01-01
  • 2012-06-06
  • 2013-02-07
  • 2023-03-09
  • 1970-01-01
  • 2015-10-28
  • 2013-06-15
  • 2019-03-11
相关资源
最近更新 更多