我假設你使用Selenium作爲默認驅動程序的@javascript驅動程序。
硒doesn't provide cross-browser solution for this。你想測試你的應用程序,而不是瀏覽器的本機下載窗口,所以你應該告訴瀏覽器自動保存下載的文件。
如果you use Firefox:
Capybara.register_driver :selenium do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.dir'] = "/path-to-folder/webdriver-downloads"
profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf" # content-type of file that will be downloaded
Capybara::Selenium::Driver.new(app, :browser => :firefox, profile: profile)
end
如果you use Google Chrome:
Capybara.register_driver :selenium do |app|
profile = Selenium::WebDriver::Chrome::Profile.new
profile['download.prompt_for_download'] = false
profile['download.default_directory'] = "/path/to/dir"
Capybara::Selenium::Driver.new(app, :browser => :chrome, profile: profile)
end
然後單擊鏈接(該鏈接調用文件下載)和文件保存到指定的目錄。