我假设您使用 Selenium 作为驱动程序,这是 @javascript 的默认驱动程序。
Selenium不为此提供跨浏览器解决方案。您想测试您的应用程序,而不是浏览器的本机下载窗口,因此您应该告诉浏览器自动保存下载的文件。
如果您使用火狐:
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
如果您使用谷歌浏览器:
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
然后单击链接(调用文件下载)并将文件保存到指定目录。