gpt4 book ai didi

ruby-on-rails - Capybara::ElementNotFound:无法找到文件字段 "file"

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:38 26 4
gpt4 key购买 nike

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

capybara 测试是这样的

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

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

最佳答案

Capybara 2x ( capybara issue ) 默认不查找隐藏元素。

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

这解决了我的问题。

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

关于ruby-on-rails - Capybara::ElementNotFound:无法找到文件字段 "file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25278724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com