7

Я реализовал загрузку JQuery-файла в моем приложении Rails4. Загрузка файла работает, когда я вручную проверяю его из браузера, но мой тест на него не работает.Как проверить загрузку JQuery-файла с RSpec и Capybara

Ниже моя спецификация для JQuery-файл-загрузки: требуется 'spec_helper'

feature 'Evidences' do 
    context "as an assessor user" do 
    let!(:assessor) { User.make! :assessor } 
    let!(:assessment) { Assessment.make! } 

    background { sign_in assessor } 

    scenario "it uploads evidence", js: true do 
     evidences_count_before_upload = assessment.evidences.count 
     visit edit_assessment_path(assessment) 

     path = "#{Rails.root}/spec/fixtures/files/sample1.doc" 
     attach_file 'evidence_file_url', path 

     expect(assessment.evidences.count).to eq(evidences_count_before_upload + 1) 
    end 
    end 
end 

Я использую RSpec 2, капибара 2 и Полтергейст для этой функции спецификации.

ответ

0

Хотя вы не сказали, как/почему ваш тест не удается: общая проблема заключается в том, что файловое поле скрыто, поэтому capybara рассматривает его как не существует.

Решение, которое работало для меня, чтобы выполнить скрипт, чтобы показать поле файла, то вдоль линий:

script = "$('input[type=file]').show();" 
page.driver.browser.execute_script(script) 

Вы также, возможно, потребуется скрыть пользовательские загрузки кнопки/метки. См. Также: Capybara, capybara-webkit and custom file upload form

1

Я также использую загрузку JQuery-файлов с RSpec и Capybara. Я использую драйвер capybara-webkit, но это должно работать и с селеном.

См метод примера и использование найденных в этом ответе: https://stackoverflow.com/a/11203629/1084109

0

Это проблема с полтергейстом. Использование другого драйвера (например, selenium-webdriver) должно решить проблему. Похоже, что события загрузки файлов не запускаются правильно с помощью полтергейста.

(у меня есть некоторые тесты JQuery Ajax файла для загрузки и те же проблемы: Мои тесты загрузки файлов только не работают с полтергейстом)

Существует closed issue, где кто-то описывает то же symptomps. Но нет ясного решения.

Смежные вопросы