我需要捕获具有移动视口宽度的页面的屏幕截图。窗口高度需要为 ~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。
这是新版本中的错误吗?有人有解决方法吗?
捕获整个页面的替代方法也很好,但是由于各种原因,此答案中的方法不起作用。