Cucumber+Capybara文件上传对我不起作用



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

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网络驱动程序版本是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))

而不是使用绝对路径,尤其是在您进行协作的情况下。

编辑:文件扩展路径而非文件扩展路径

我只是想回答我的问题,问题是我没有使用完整的路径。不知怎的,水豚不认识相对路径。

最新更新