python+selenium get_screenshot_as_png方法获得的图片大小比预计的要大

在设定浏览器的带大小后(800,600),使用截图方法,获得的图片居然比浏览器本身还大。
请教下,到底是哪里出了问题?该如何处理

from io import BytesIO
from PIL import Image
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

browser = webdriver.Chrome()
browser.set_window_size(800, 600)
wait = WebDriverWait(browser, 20)
browser.get('https://www.baidu.com/')
screenshot = browser.get_screenshot_as_png()
screenshot = Image.open(BytesIO(screenshot))
browser.get_screenshot_as_file('test.png')
print("浏览器size:", browser.get_window_size())
print("全图size:", screenshot.size)
browser.close()

浏览器size: {'width': 800, 'height': 600}
全图size: (1179, 699)

更新:
测试了下,仅在使用其headless模式下,对全图的截图才为正确。

===========================================================
Chrome 67.0.3396.99
selenium 3.13
python 3.6/3.7
win10
上述环境下始终截图过大

阅读 9.5k
1 个回答

可能是你的软件版本问题,我用最新版的 selenium, python 3,及 chrome,输出结果符合预期,如下

浏览器size: {'width': 800, 'height': 600}
全图size: (800, 491)
推荐问题
宣传栏