我正在测试文件上传,即 CSV。在我的代码和浏览器 HTML 中,我找到了文件字段,但在测试时,水豚无法找到该文件字段。我努力尝试不同的方法,但无法解决问题。这里部分看起来像这样:
#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"
水豚测试看起来像这样
within '.upload_csv' do
page.attach_file('file', "#{Rails.root}/spec/acceptance/test_uploads/input_output.csv")
click_button 'Upload'
end
如果您能帮我解决这个问题,我将不胜感激?
水豚 2x (水豚问题 https://github.com/thoughtbot/capybara-webkit/issues/546) 默认情况下不查找隐藏元素。
您可以将ignore_hidden_elements 设置为 false:
Capybara.ignore_hidden_elements = false
或者只需将 :visible 选项添加到您的方法中:
within '.upload_csv' do
attach_file('file', "#{Rails.root}/spec/acceptance/test_uploads/input_output.csv", visible: false)
click_button 'Upload'
end
这解决了我的问题。
Note: :visible
大多数内部使用的 Capybara 方法也支持选项Capybara::Query
(like find
, all
, has_css?
, have_selector
etc.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)