2013-02-17 2 views
1

오크를 사용하여 (레일에있는) 내 응용 프로그램을 테스트하고 있습니다. 자, 파일 다운로드 테스트에 문제가 있습니다. 나는 모든 기능에 @javascript 태그를 넣으므로 백본을 사용하고 있습니다. 나는 같은 stackoverflow에서 주어진 솔루션을 통해 갔다 : cucumber test file download하지만 그들은 랙 테스트에 있습니다. 나는 오이에 @javascript가있을 때 파일 다운로드 상자를 클릭하는 방법을 알고 싶습니까? 응답 헤더를 확인하려고했는데 : page.response_headers['Content-Type'].should == "text/csv"하지만 capybara에서는 지원되지 않습니다.오이 파일 다운로드 @javascript 태그 기능

의견을 보내 주시면 감사하겠습니다.

답변

3

@javascript의 경우 기본 드라이버 인 Selenium을 드라이버로 사용한다고 가정합니다.

셀레늄 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 

는 그런 다음 (파일 다운로드 호출하는) 및 파일이 지정된 디렉토리에 저장됩니다 링크를 클릭합니다.