我正在使用以下代码下载CSV文件及其在MAC上正常工作但在Windows上无效。
在窗口上它下载文件,但它将其保存在下载文件夹中,即默认路径
def self.launch(browser=:firefox, profile=nil)
profile = Selenium::WebDriver::Firefox::Profile.new
path = File.join(File.join(Dir.pwd), 'csv_files')
FileUtils.rm_rf(path) if Dir.exists? path
Dir.mkdir(path)
profile['browser.download.dir'] = path
profile['browser.download.folderList'] = 2
profile['browser.helperApps.neverAsk.saveToDisk'] = 'text/csv'
profile['pdfjs.disabled'] = true
$watir_browser = UITest.new_browser_session browser, profile
$driver = $watir_browser.wd
return $watir_browser
end
如果需要进行任何更改,请建议我。
答案 0 :(得分:1)
<强>问题强>
当您执行该行时:
path = File.join(File.join(Dir.pwd), 'csv_files')
路径为:
'some/path/csv_files'
在Windows中,&#34; /&#34;需要是&#34; \&#34;:
'some\path\csv_files'
<强>解决方案强>
当平台为Windows时,您可以做的是替换斜杠:
path = File.join(File.join(Dir.pwd), 'csv_files')
path.gsub!("/", "\\") if Selenium::WebDriver::Platform.windows?
答案 1 :(得分:1)
请尝试这个,让我知道。
relative_path = File.expand_path File.dirname(__FILE__)
OR
require 'open-uri'
require 'selenium-webdriver'
path = File.join(File.join(Dir.pwd), 'csv_files')
Dir.mkdir(path) unless File.exists?(path)
modified_path = path.gsub!("/", "\\") if Selenium::WebDriver::Platform.windows?
File.delete(File.join(modified_path, 'test.csv')) if File.exist?(File.join(modified_path, 'test.csv'))
open(File.join(modified_path, 'test.csv'), 'wb') do |file|
file << open('http://example.com').read
end