Selenium Firefox Geckodriver 下载目录错误
Wrong download directory for Selenium Firefox Geckodriver
我一直在尝试让 Selenium 将文件下载到特定文件夹,但无济于事。
这是我当前的驱动程序设置,同时尝试影响下载目录:
#<Selenium::WebDriver::Firefox::Options:0x00007f94374c0bd0 @debugger_address=nil,
@options={
:browser_name=>"firefox",
:args=>[],
:prefs=>{
"download.folderList"=>2,
"download.dir"=>"./downloads",
"download.directory_upgrade"=>true,
"download.prompt_for_download"=>false,
"download.default_directory"=>"./downloads",
"plugins.plugins_disabled"=>"Chrome PDF Viewer",
"browser.helperApps.neverAsk.saveToDisk"=>"application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, text/csv"
}
},
@profile=#<Selenium::WebDriver::Firefox::Profile:0x00007f94374c0e28 @model=nil,
@additional_prefs={
"browser.download.folderList"=>2,
"browser.download.manager.showWhenStarting"=>false,
"browser.download.downloadDir"=>"./downloads",
"browser.download.dir"=>"./downloads",
"browser.download.directory_upgrade"=>true,
"browser.download.prompt_for_download"=>false,
"browser.download.default_directory"=>"./downloads"
}, @extensions={}>>
我试过:
- 下载目录(我用的是Mac):
- /lib/downloads
- 下载
- ./下载
- 以上尝试设置下载目录的多种组合。
我浏览了 selenium-webdriver docs and Mozilla Webdriver docs,但找不到设置下载目录的参考资料。
试试这个,让我知道它是否有效。
profile = Selenium::WebDriver::Firefox::Profile.new(ENV['APPDATA'] + '\Mozilla\Firefox\Profilesdeyh6ub.default-release')
profile['browser.download.dir'] = custom_download_dir
profile['browser.download.folderList'] = 2
options = Selenium::WebDriver::Firefox::Options.new(profile: profile)
driver = Selenium::WebDriver.for :firefox, options: options
并检查此路径 Mozilla\Firefox\Profilesdeyh6ub.default-release
并查看文件夹名称是什么并相应地提供文件夹名称,它将起作用。
自定义目录路径必须是绝对,格式如下:
在 Mac,~Downloads 文件夹将是 /Users/[me]/Downloads
。
在Rails中,假设要将下载内容放在lib/custom_downloads
中,指定的目录应该是Dir.pwd + '/lib/custom_downloads'
.
对我有用的代码:
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2
profile['browser.download.dir'] = Dir.pwd + '/forecastsdir'
profile['browser.helperApps.neverAsk.saveToDisk'] = ('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel')
options = Selenium::WebDriver::Firefox::Options.new(profile: profile, args: ['-headless'])
driver = Selenium::WebDriver.for :firefox, options: options
非常感谢@Rajagopalan (+1) 的帮助。
我一直在尝试让 Selenium 将文件下载到特定文件夹,但无济于事。
这是我当前的驱动程序设置,同时尝试影响下载目录:
#<Selenium::WebDriver::Firefox::Options:0x00007f94374c0bd0 @debugger_address=nil,
@options={
:browser_name=>"firefox",
:args=>[],
:prefs=>{
"download.folderList"=>2,
"download.dir"=>"./downloads",
"download.directory_upgrade"=>true,
"download.prompt_for_download"=>false,
"download.default_directory"=>"./downloads",
"plugins.plugins_disabled"=>"Chrome PDF Viewer",
"browser.helperApps.neverAsk.saveToDisk"=>"application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, text/csv"
}
},
@profile=#<Selenium::WebDriver::Firefox::Profile:0x00007f94374c0e28 @model=nil,
@additional_prefs={
"browser.download.folderList"=>2,
"browser.download.manager.showWhenStarting"=>false,
"browser.download.downloadDir"=>"./downloads",
"browser.download.dir"=>"./downloads",
"browser.download.directory_upgrade"=>true,
"browser.download.prompt_for_download"=>false,
"browser.download.default_directory"=>"./downloads"
}, @extensions={}>>
我试过:
- 下载目录(我用的是Mac):
- /lib/downloads
- 下载
- ./下载
- 以上尝试设置下载目录的多种组合。
我浏览了 selenium-webdriver docs and Mozilla Webdriver docs,但找不到设置下载目录的参考资料。
试试这个,让我知道它是否有效。
profile = Selenium::WebDriver::Firefox::Profile.new(ENV['APPDATA'] + '\Mozilla\Firefox\Profilesdeyh6ub.default-release')
profile['browser.download.dir'] = custom_download_dir
profile['browser.download.folderList'] = 2
options = Selenium::WebDriver::Firefox::Options.new(profile: profile)
driver = Selenium::WebDriver.for :firefox, options: options
并检查此路径 Mozilla\Firefox\Profilesdeyh6ub.default-release
并查看文件夹名称是什么并相应地提供文件夹名称,它将起作用。
自定义目录路径必须是绝对,格式如下:
在 Mac,~Downloads 文件夹将是
/Users/[me]/Downloads
。在Rails中,假设要将下载内容放在
lib/custom_downloads
中,指定的目录应该是Dir.pwd + '/lib/custom_downloads'
.
对我有用的代码:
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.folderList'] = 2
profile['browser.download.dir'] = Dir.pwd + '/forecastsdir'
profile['browser.helperApps.neverAsk.saveToDisk'] = ('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel')
options = Selenium::WebDriver::Firefox::Options.new(profile: profile, args: ['-headless'])
driver = Selenium::WebDriver.for :firefox, options: options
非常感谢@Rajagopalan (+1) 的帮助。