如何右键单击selenium并单击“将图像保存为Python”

강희명*_*강희명 5 python selenium web-crawler

我正在尝试用鼠标右键单击,然后单击“在 selenium python 中另存为图像”。我能够使用以下方法执行右键单击,但是执行右键单击的下一个操作不再起作用。我怎么解决这个问题?

from selenium.webdriver import ActionChains 
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
driver.get(url)

    # get the image source
img = driver.find_element_by_xpath('//img')
actionChains = ActionChains(driver)
actionChains.context_click(img).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ARROW_DOWN).send_keys(Keys.RETURN).perform()
Run Code Online (Sandbox Code Playgroud)

小智 5

问题是 send_keys() 方法在创建上下文菜单后将键发送到窗口,而不是菜单。因此,无法访问菜单项。

下载在网页中创建的画布时,我遇到了类似的问题。最后,我能够下载执行 JavaScript 的图像。我创建了一个下载元素来管理图像。由于它是画布,我之前必须执行 toDataURL 方法。这是我的Python代码:

script_js = 'var dataURL = document.getElementsByClassName("_cx6")[0].toDataURL("image/png");' \
    'var link = document.createElement("a"); ' \
    'link.download = "{}_{}";' \
    'link.href = dataURL;' \
    'document.body.appendChild(link);' \
    'link.click();' \
    'document.body.removeChild(link);' \
    'delete link;'.format( n, prefijo_nombre_archivo, sufijo_nombre_archivo )
driver.execute_script(script_js)
Run Code Online (Sandbox Code Playgroud)

我希望它能有所帮助!