如何通过选择“保存图像”;“将图像另存为…”;在使用SeleniumWebDriver(Python)的上下文菜单中
我正在尝试使用SeleniumWebDriver将特定图像保存到目录中。我希望通过模拟在img元素上单击鼠标右键并选择“将图像另存为…”来实现这一点。使用以下代码,我可以打开上下文菜单,但无法选择正确的选项如何通过选择“保存图像”;“将图像另存为…”;在使用SeleniumWebDriver(Python)的上下文菜单中,python,selenium,webdriver,contextmenu,Python,Selenium,Webdriver,Contextmenu,我正在尝试使用SeleniumWebDriver将特定图像保存到目录中。我希望通过模拟在img元素上单击鼠标右键并选择“将图像另存为…”来实现这一点。使用以下代码,我可以打开上下文菜单,但无法选择正确的选项 browser = WebDriver(executable_path=CHROMEDRIVER_PATH) browser.get(URL) img = browser.find_element_by_tag_name('img') ActionChains(browser).contex
browser = WebDriver(executable_path=CHROMEDRIVER_PATH)
browser.get(URL)
img = browser.find_element_by_tag_name('img')
ActionChains(browser).context_click(img).perform()
我还尝试:
ActionChains(browser).context_click(img).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
并使用快捷方式(“v”似乎选择“将图像另存为…”)
该图像没有直接URL,因为它是一个验证码图像,每次单击都会随机重新加载。我找到的唯一能够处理它的方法是首先将它保存在磁盘上(使用“将图像另存为…”)。保存整个页面不会保存此特定图像,因此无法正常工作
有什么想法吗?如果你想要的是验证码,你最好只是截图
driver.save_screenshot('screenshot.png')
正如Kretivitea所建议的那样,截图将是一个不错的选择,因为验证码的设计是为了防止脚本执行您试图执行的操作。验证码旨在防止会话重复使用。描述会话的重复使用。我遇到了类似的问题,刚刚通过使用“另存为”获得了保存图像的快捷方式---
因为我是一名java程序员,所以我无法相应地粘贴代码(python的问题)。也许这可以帮助您获得答案,但我认为这并不能解决这个问题。如果可能的话,我想使用ChromeWeb驱动程序来实现这一点。在呈现javascript时,我在使用FireFox时遇到了一些问题。
driver.save_screenshot('screenshot.png')
Step-1-right click on an image you wish to save
Step-2- press v.
Step-3-Enter to the directory window to save