У меня не работает загрузка файла с огурцом и капибарой - PullRequest
3 голосов
/ 06 февраля 2012

Я пытаюсь проверить простую загрузку файлов с помощью 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)

и моя версия селен-вебдрайвера - 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"}

Это довольно просто, но я не уверен, почему это не работает.

Ответы [ 2 ]

12 голосов
/ 11 марта 2012

Игрушка, Я предлагаю:

attach_file(field, File.expand_path(path))

Вместо использования абсолютного пути, особенно если вы сотрудничаете.

изменить: File.expand_path не File.extend_path

5 голосов
/ 08 февраля 2012

Я просто хотел ответить на мой вопрос, проблема в том, что я не использовал полный путь.Каким-то образом капибара не распознает относительный путь.

...