Снять скриншот определенной области страницы, используя Selenium - Python
Формулировка задачи:
Всем доброго дня. Selenium умеет снимать скриншот всей страницы на ура:
Своим скриптом я автоматизировал некие моменты и мне необходимо получить сохраненное изображение капчи с последующей отправкой ее мне в телеграм. На данный момент все работает, но коряво... Я граблю заданную область капчи PILом и все работает...НО это работает только при развернутой странице (потому как PILу необходимо грабить то что видно на экране), а selenium умеет работать при свернутом браузере, вот и хотелось бы как-нибудь заставить selenium снимать скриншот определенной области или же просто сохранять найденное изображение по xpath, например, так как URL капчи каждый раз новый... Возможно задача решается элементарно, но что-то как-то..... Заранее большое спасибо.
Листинг программы
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('https://ya.ru')
- driver.save_screenshot("screenshot.png")
Решение задачи: «Снять скриншот определенной области страницы, используя Selenium»
textual
Листинг программы
- from PIL import Image
- img_id = driver.find_element_by_id('captcha-id')
- loc = img_id.location
- size = img_id.size
- left = loc['x']
- top = loc['y']
- right = loc['x'] + size['width']
- bottom = loc['y'] + size['height']
- scrsht = 'Captcha.png'
- driver.save_screenshot(scrsht)
- img = Image.open(scrsht)
- img = img.crop((left, top, right, bottom))
- img.save(scrsht)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д