@NoXXik

Как сделать скриншот расписания на сайте при помощи selenium?

Есть задача сделать скриншот расписания занятий на сайте, пытался сделать через размер, но кол-во пар не всегда совпадает c размерами заданных по умолчанию, тем более не всегда влезает в окно скриншота все предметы. Пробовал с driver.find_element_by_class_name но он там скринит только первый элемент, а при driver.find_elements_by_class_name возвращает список, поэтому нельзя сделать скрин. Вот сайт: almetpt.ru/2020/site/schedulegroups/0/1/2020-03-17 Подскажите, как можно сделать скрин для каждой группы отдельно)
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
ScriptKiddo
@ScriptKiddo
Скрин элемента есть в свойстве .screenshot_as_png. Это поток байтов, записываем в байтовом режиме.

blocks = driver.find_elements_by_xpath("//*[contains(@class, 'd-inline-block')]")

for i, block in enumerate(blocks):
    with open(file=f'{i}.png', mode='wb') as f:
        f.write(block.screenshot_as_png)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NoXXik ScriptKiddo
через
POST to
http://127.0.0.1:55105/session/4efe9b351b24b0869d34bf24ca45af0e/chromium/send_command_and_get_result
params: {"cmd": "Page.captureScreenshot", "params": {"clip": {"x": 32, "y": 469, "width": 235, "height": 76, "scale": 1}}}
...


return base64.b64decode(response['value']['data'])
(для каждой карты viewport будет свой)
можно тоже
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы