Как скопировать изображение в буфер обмена из собственного меню браузера с помощью Selenium и Python - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь автоматизировать задачу взятия изображения или исходного элемента и копирования его в буфер обмена. Это эквивалентно просмотру изображения в Интернете, щелчку по нему правой кнопкой мыши и нажатию «копировать изображение». Я пытаюсь автоматизировать это с помощью селена, какой самый эффективный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

По сути, копирование изображения в буфер обмена осуществляется через Context Click -> Copy image.


context_click ()

context_click() обычно вызывается на WebElement , например link .

Вызов context_click() в элементе открывает собственное контекстное меню браузера, которое является собственной операцией браузера и не может управляться Selenium по дизайну.


Заключение

Используя Selenium , вы не сможете взаимодействовать с элементами контекстного меню браузера, используя send_keys(Keys.ARROW_DOWN), send_keys(Keys.DOWN), et c.


Ссылка

Вы можете найти соответствующее обсуждение в:

0 голосов
/ 18 июня 2020

Во-первых, вы можете использовать один из множества вариантов, которые предлагает Selenium для поиска элемента. В вашем случае вы, вероятно, ищете тег img HTML или что-то подобное.

После того, как вы получили элемент, вы можете запустить метод .get_attribute("src"), чтобы получить исходный URL для картины. Затем вы можете связать это с модулем, например requests, чтобы загрузить изображение на свой компьютер: (Взято из this answer)

import requests
...
r = requests.get(element.get_attribute("src"), stream = True)
if r.status_code == 200:
    with open(filePath, 'wb') as f:
        for chunk in r:
            f.write(chunk)

Наконец, вы можете использовать такой модуль, как тот, который используется в этом ответе для копирования загруженного изображения в буфер обмена.

...