使用Chrome驱动程序通过python和selenium在指定位置下载文件

Shu*_*yal 17 python selenium google-chrome driver download

我试图通过selenium的点击功能自动下载一些链接,我使用chrome webdriver和python作为编程语言.如何通过python程序选择下载目录,以便它不会下载到默认的Downloads目录中.我找到了firefox的解决方案,但每次点击链接时都会弹出下载对话框,这在Chrome中不会发生.

hoj*_*oju 57

我发现接受的解决方案不起作用,但是这种微小的改变确实如此:

import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : '/path/to/dir'}
chrome_options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法在 **当前会话** 上更改下载路径,类似于单击 Chrome 设置 - >下载的方式?我看到的答案总是会导致**构建新选项+新驱动程序+获得全新会话**。我不希望关闭当前会话,因为我的文件夹分隔基于下拉列表中的每个项目,并且不需要重新加载新页面。该下拉列表中有数千个项目;接受的方法意味着关闭并加载页面数千次。 (3认同)
  • 代码对我有用,我没有收到任何错误。另外 Chrome_Options 已被弃用,所以我使用选项而不是之前的路径是 C:/Users/myusname/drivers/DownloadFiles 我将其更改为 C:\Users\myusname\drivers\DownloadFiles\\ downloadFilepath = r"C:\Users\myusname\驱动程序\DownloadFiles\\”;chrome_options = webdriver.ChromeOptions() prefs = {"download.default_directory" : downloadFilepath} options.add_experimental_option('prefs', prefs) driver=webdriver.Chrome(executable_path=chromedriver,options=options) 解决方案:https://stackoverflow。 com/a/42943611/1604050 (2认同)

Raj*_*hoo 13

我在尝试做完全相同的事情时也遇到的确切问题:)

对于铬:

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
prefs = {"profile.default_content_settings.popups": 0,
             "download.default_directory": 
                        r"C:\Users\user_dir\Desktop\\",#IMPORTANT - ENDING SLASH V IMPORTANT
             "directory_upgrade": True}
options.add_experimental_option("prefs", prefs)
browser=webdriver.Chrome(<chromdriver.exe path>, options=options)
Run Code Online (Sandbox Code Playgroud)

对于 Firefox:请关注此博客以获取答案:https : //srirajeshsahoo.wordpress.com

该博客说明了有关弹出和下载目录以及如何操作的所有信息


Sar*_*lis 10

更新2018:

它不是有效的Chrome命令行开关,请参阅下面的源代码使用hoju回答来设置“偏好设置”。

原版的:

您可以为Chrome创建配置文件,并定义测试的下载位置。这是一个例子:

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("download.default_directory=C:/Downloads")

driver = webdriver.Chrome(chrome_options=options)
Run Code Online (Sandbox Code Playgroud)

  • 这似乎不起作用。也许Chromedriver的界面已更改?hoju的回应现在似乎起作用了。 (5认同)
  • 它在 mac 中不适用于我,只需尝试以下内容: `prefs = {'download.default_directory' : '/path/to/dir'}; chrome_options.add_experimental_option('首选项', 首选项)` (4认同)

小智 5

使用首选项解决了我的问题

path = os.path.dirname(os.path.abspath(__file__))
prefs = {"download.default_directory":path}
options = Options()
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome('../harveston/chromedriver.exe',options = options)
Run Code Online (Sandbox Code Playgroud)