Ответ 1
Из документов Capybara:
The file field can be found via its name, id or label text.
И у вас явно есть это уже, что немного озадачивает. Есть ли модальное окно, блокирующее это и/или является ли page.driver переключением на что-то еще случайно? Я спрашиваю, потому что на самом деле не совсем необходимо взаимодействовать с кнопкой формы и вызывать появление модального или файла/проводника/поискового окна, а иногда это может запутать page.driver(например: переключает фокус на окно вместо страницы).
Попробуйте удалить любые действия click_button непосредственно перед этим шагом, а затем попробуйте следующее:
attach_file('ok', File.absolute_path('./fileset/publisher/upload_pic.jpg'))
Это работало для меня ранее, в супер-глубоко родительском div, который закончился классом кнопок.