1

我需要捕获具有移动视口宽度的页面的屏幕截图。窗口高度需要为 ~18000px 以包含页面上的所有内容而不滚动。

每次我打电话set_window_size()get_window_size()报告一个较小的高度和我的截图被切断:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

fox_options = Options()
fox_options.headless = True

driver = webdriver.Firefox(options=fox_options)
driver.get("https://foo.bar")

driver.set_window_size(450, 18355)
driver.get_window_size()
>> {'width': 450, 'height': 16384}

较小的高度设置正确。似乎没有严格的高度限制,当打开内容更多的更大页面时,我可以创建更大的窗口,但窗口总是比需要的小约 2000 像素。

我试过了:

  • 将 2000 添加到传递给 的高度set_window_size(),没有效果。
  • set_window_position(0, 0)之前set_window_size(),没有效果。
  • 旧版本的 Firefox + geckodriver (77.0.1, 0.26.0):这可以工作,但不是一个选项。

版本:Selenium 4.1.0、geckodriver 0.30.0、Firefox 96.0。

这是新版本中的错误吗?有人有解决方法吗?

捕获整个页面的替代方法也很好,但是由于各种原因,此答案中的方法不起作用。

4

0 回答 0