Update: Капибара 2,12 добавил make_visible
возможность attach_file
так что при использовании 2.12+ вы можете сначала попробовать
attach_file('file[picture]', 'path/to/file.png', make_visible: true)
, прежде чем непосредственно используя execute_script
самостоятельно
Входы файлов - это особый случай, поскольку они так часто скрыты для объяснения стиля и используют систему для взаимодействия. Капибара делает его трудно заполнить скрытые поля на странице, так как пользователи, как правило, не могут взаимодействовать с ними, поэтому для входа файлов обычной практикой является использование execute_script
, чтобы сделать их видимыми, а затем заполнить их.
execute_script("$('input[name=\"file[picture]\"]').removeClass('hidden')") # assumes you have jQuery available - if not change to valid JS for your environment
attach_file('file[picture]', 'path/to/file.png') # takes id, name or label text of field not a random selector
make_visible: true +1 –