2013-02-17 58 views
1

我正在使用黃瓜來測試我的應用程序(這是在Rails中)。現在,我有問題要測試下載文件。我正在使用主幹,因此我將@javascript標記放在每個功能上。我已經通過了諸如:cucumber test file download之類的計算器給出的解決方案,但他們正在進行機架測試。我想知道如何在黃瓜中使用@javascript時點擊文件下載框?我試圖驗證響應標題,如:page.response_headers['Content-Type'].should == "text/csv",但它表明它不支持水豚。黃瓜文件下載與@javascript標記功能

任何建議,將不勝感激。

回答

3

我假設你使用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 

然後單擊鏈接(該鏈接調用文件下載)和文件保存到指定的目錄。