7

Tôi đã triển khai tải lên tệp JQuery trong ứng dụng Rails4 của mình. Tải lên tệp hoạt động khi tôi kiểm tra thủ công từ trình duyệt nhưng thử nghiệm của tôi cho nó không thành công.Cách kiểm tra tải lên tệp JQuery bằng RSpec và Capybara

Dưới đây là spec của tôi cho JQuery-file-upload: require '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 

Tôi đang sử dụng RSpec 2, Capybara 2 và Poltergeist cho tính năng này spec.

Trả lời

0

Mặc dù bạn không nói như thế nào/tại sao thử nghiệm của bạn không thành công: Vấn đề thường gặp ở đây là trường tệp bị ẩn, vì vậy capybara coi nó là không có.

Một giải pháp mà làm việc đối với tôi là để thực hiện một kịch bản để hiển thị các lĩnh vực tập tin, một cái gì đó dọc theo dòng:

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

Bạn cũng có thể cần phải giấu upload tùy chỉnh của bạn nút/nhãn. Xem thêm: Capybara, capybara-webkit and custom file upload form

1

Tôi cũng đang sử dụng tải lên tệp JQuery với RSpec và Capybara. Tôi đang sử dụng trình điều khiển capybara-webkit, nhưng điều này cũng làm việc với selenium.

Xem phương pháp dụ và sử dụng được tìm thấy trong câu trả lời này: https://stackoverflow.com/a/11203629/1084109

0

Đây là một vấn đề với poltergeist. Sử dụng trình điều khiển khác (ví dụ: selenium-webdriver) sẽ giải quyết vấn đề. Dường như các sự kiện tải tệp lên không được kích hoạt chính xác với trình xử lý chính.

(Tôi có một số xét nghiệm tập tin jquery ajax upload và những vấn đề tương tự: tập tin kiểm tra tải lên của tôi chỉ không làm việc với poltergeist)

Có một closed issue mà ai đó mô tả các symptomps cùng. Nhưng không có giải pháp rõ ràng.