【发布时间】:2020-06-18 07:23:39
【问题描述】:
我正在尝试自动执行获取图像或源元素并将其复制到剪贴板的任务。这相当于在网络上查看图像,右键单击它,然后单击“复制图像”。我正在尝试使用 selenium 自动执行此操作,最有效的方法是什么?
【问题讨论】:
标签: python image selenium copy clipboard
我正在尝试自动执行获取图像或源元素并将其复制到剪贴板的任务。这相当于在网络上查看图像,右键单击它,然后单击“复制图像”。我正在尝试使用 selenium 自动执行此操作,最有效的方法是什么?
【问题讨论】:
标签: python image selenium copy clipboard
首先,您可以使用 Selenium 提供的众多选项之一来查找元素。在您的情况下,您可能正在寻找一个 img HTML 标签或类似的东西。
获取元素后,可以运行.get_attribute("src")方法获取图片的源地址。然后,您可以将其与requests 之类的模块配对,以将图片下载到您的计算机:(取自this 答案)
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)
最后,您可以使用类似this 答案中使用的模块将下载的图像复制到剪贴板。
【讨论】:
os.remove(file)删除。
基本上,将图像复制到剪贴板是通过Context Click -> Copy image 执行的。
context_click() 通常在 WebElement 上调用,例如链接。
在元素上调用 context_click() 会打开一个浏览器原生上下文菜单,这是一个浏览器原生操作,并且不能由 Selenium 设计管理。
使用Selenium,您将无法使用send_keys(Keys.ARROW_DOWN)、send_keys(Keys.DOWN) 等与浏览器原生上下文菜单项进行交互。
您可以在以下位置找到相关讨论:
【讨论】: