attach_file
принимает имя файла ввода, идентификатор или связанный текст метки - https://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#attach_file-instance_method - поэтому передача его в селектор класса CSS никогда не будет работать.Вы не показываете, какой у вас настоящий HTML, но при условии, что у вас есть файл, например
<input id="my_file_input" name="some_name" type="file"/>
, тогда вы можете выполнить любой из следующих действий:
attach_file('my_file_input', path_to_file)
attach_file('some_name', path_to_file)
Другая проблема, которую вы можете запуститьДело в том, что ввод файла часто скрыт, чтобы обеспечить согласованность стилей в разных браузерах.Если это относится к вашему приложению, то вы можете использовать опцию make_visible
, чтобы сообщить Capybara, что нужно сделать ввод файла видимым, прикрепить файл и затем скрыть ввод.
attach_file('my_file_input', path_to_file, make_visible: true)
ОБНОВЛЕНИЕ: теперь, когда предоставлен фактический HTML-код и подтверждено, что ввод файла действительно вводится, любое из следующего должно работать
attach_file('image-file', path_to_file, make_visible: true)
attach_file('Browser', path_to_file, make_visible: true)
find('.text-field__browse_file').attach_file(path_to_file, make_visible: true)