ruby - cucumber + capybara 文件上传对我不起作用

标签 ruby cucumber sinatra capybara

我正在尝试使用 Capybara 测试简单的文件上传。这是我的 Gemfile.锁

capybara (1.1.2)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 0.1.4)

我的 selenium-webdriver 版本是 2.18。这是我的 web_steps 文件(已生成):

When /^(?:|I )attach the file "([^\"]*)" to "([^\"]*)"(?: within "([^\"]*)")?$/ do |path, field, selector|
  with_scope(selector) do
    attach_file(field, path)
  end
end

这是我上传文件的功能:

Then I attach the file "features/resources/empty.file" to "file" within "#uploadForm"

实际上它运行良好并且在线上显示为绿色,但是输入没有获取任何文件,因此之后测试失败,因为没有选择文件。

这是我的表格:

%form#uploadForm{:action => "/upload", :method => "POST", :enctype => "multipart/form-data"}
  %input{:type => "file", :name => "file", :id => "file"}

这是非常基本的,但我不确定为什么它不起作用。

最佳答案

玩具, 我建议:

attach_file(field, File.expand_path(path))

而不是使用绝对路径,尤其是在协作时。

编辑:File.expand_path 不是 File.extend_path

关于ruby - cucumber + capybara 文件上传对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153290/

相关文章:

java - 从服务器拉取场景和步骤 (Zephyr for JIRA)

ruby - 在 Heroku 上安装二进制文件,特别是 FontCustom

ruby-on-rails - 并在方法结束时返回

ruby-on-rails - 为什么有时会出现类型错误 "no implicit conversion of StringIO into String"? ruby /Rails

mysql - 使用 JOIN 时 ActiveRecord 查询中 ORDER 的动态方向

ruby - 自动记录 DataMapper 查询

ruby - 在 Sinatra 中处理 405

ruby - Ruby中的循环函数多次写入

ruby - cucumber 中未初始化的常量 (NameError) - 如何将类包含到 _steps.rb?

ruby-on-rails - 在 Cucumber/Capybara 中使用子域的问题