Capybara :: ElementNotFound:无法找到文件字段“file”

我正在测试文件上传即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" 

而且水豚测试看起来像这样

  within '.upload_csv' do page.attach_file('file', "#{Rails.root}/spec/acceptance/test_uploads/input_output.csv") click_button 'Upload' end 

如果你能帮助我解决这个问题,我将感激不尽?

Capybara 2x( 水豚问题 )默认情况下找不到隐藏的元素。

您可以将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 

这解决了我的问题。

注意:大多数内部使用Capybara::Query has_css?方法也支持:visible选项(如findallhas_css?have_selector等)

    Interesting Posts