如何以特定分辨率捕获硒中的屏幕截图?

时间:2019-09-27 09:57:22

标签: python selenium

我想捕获具有特定分辨率的canvas元素的屏幕截图。我正在使用以下片段来捕获屏幕截图。此方法可行,但始终需要分辨率为1544px * 638px的屏幕截图。根据是什么(浏览器窗口或我的窗口屏幕)截屏。我正在使用Chrome浏览器。如何修改下面的代码以截取分辨率为500 * 325左右的屏幕截图。

我使用了set_window_size(500,325),并且得到了尺寸为750 * 135的屏幕截图

def capture_screenshot():
    driver = LiveLibrary.get_webdriver_instance()
    driver.set_window_size(500, 325) 
    canvas_element = driver.find_element_by_xpath("//canvas")
    result = canvas_element.screenshot_as_png
    with open('save.png', 'wb') as f:
        f.write(result)

有人可以帮我这个忙吗?谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用PIL中的Image.resize来调整屏幕截图的大小。喜欢:

from PIL import Image
import io

    ...

    result = canvas_element.screenshot_as_png
    image = Image.open(io.BytesIO(result))
    imageResized = image.resize( (500,325), Image.ANTIALIAS) 
    with open('save.png', 'wb') as f:
        imageResized.save(f , format='PNG') 
相关问题