Как сделать снимок экрана в селене с определенным разрешением? - PullRequest
1 голос
/ 27 сентября 2019

Я хочу сделать снимок экрана элемента 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 Ответ

2 голосов
/ 27 сентября 2019

Вы можете изменить размер скриншота с помощью Image.resize из PIL.Нравится:

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') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...