Снять скриншот определенной области страницы, используя Selenium - Python

Узнай цену своей работы

Формулировка задачи:

Всем доброго дня. Selenium умеет снимать скриншот всей страницы на ура:
Своим скриптом я автоматизировал некие моменты и мне необходимо получить сохраненное изображение капчи с последующей отправкой ее мне в телеграм. На данный момент все работает, но коряво... Я граблю заданную область капчи PILом и все работает...НО это работает только при развернутой странице (потому как PILу необходимо грабить то что видно на экране), а selenium умеет работать при свернутом браузере, вот и хотелось бы как-нибудь заставить selenium снимать скриншот определенной области или же просто сохранять найденное изображение по xpath, например, так как URL капчи каждый раз новый... Возможно задача решается элементарно, но что-то как-то..... Заранее большое спасибо.

Решение задачи: «Снять скриншот определенной области страницы, используя 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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5