cmt*_*kur 8 ruby ruby-on-rails capybara rspec3
我正在测试文件上传即CSV.在我的代码以及浏览器HTML中,我找到了文件字段,但在测试capybara时无法找到文件字段.我努力尝试不同的方法,但无法解决问题.这部分看起来像这样:
#add_file_box
%div.msg
%h1.page-header
= "Upload a CSV"
%h4.title
= form_tag dummy_path, multipart: true, class: "upload_csv" do
= hidden_field_tag :dmp_id, @dmp.id
.form-group
.input-group
%span.input-group-btn
%span.btn.btn-primary.btn-file
Choose file
= file_field_tag :file, style: 'line-height: normal', accept: "text/csv", class: "file_input"
%input.form-control.input-custom{:readonly => "", :type => "text"}
.form-group
= submit_tag "Upload CSV", class: "btn btn-primary", id: "upload_csv"
Run Code Online (Sandbox Code Playgroud)
而且水豚测试看起来像这样
within '.upload_csv' do
page.attach_file('file', "#{Rails.root}/spec/acceptance/test_uploads/input_output.csv")
click_button 'Upload'
end
Run Code Online (Sandbox Code Playgroud)
如果你能帮助我解决这个问题,我将感激不尽?
cmt*_*kur 15
Capybara 2x(水豚问题)默认情况下找不到隐藏的元素.
您可以将ignore_hidden_elements设置为false:
Capybara.ignore_hidden_elements = false
Run Code Online (Sandbox Code Playgroud)
或者只需在方法中添加:visible选项:
within '.upload_csv' do
attach_file('file', "#{Rails.root}/spec/acceptance/test_uploads/input_output.csv", visible: false)
click_button 'Upload'
end
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
注::visible选项也被大多数的水豚方法,在内部与工作的支持Capybara::Query(如find,all,has_css?,have_selector等)
| 归档时间: |
|
| 查看次数: |
4831 次 |
| 最近记录: |