Od docs Capybara:
The file field can be found via its name, id or label text.
A ty masz to już wyraźnie, co jest nieco zaskakujący. Czy istnieje okno modalne blokujące to i/lub czy page.driver jest przez przypadek przełączane na coś innego? Pytam, ponieważ to w rzeczywistości nie jest całkowicie konieczne, aby wejść w interakcję z przyciskiem formularza i spowodować pojawienie się okna modal lub file/Explorer/Finder, a czasami może to zmylić stronę page.driver (np: przełącza fokus na okno zamiast na okno strona).
Spróbuj usunąć wszelkie działania click_button tuż przed tym etapie, a następnie spróbuj tego:
attach_file('ok', File.absolute_path('./fileset/publisher/upload_pic.jpg'))
ten pracował dla mnie wcześniej, w super głęboko parented div, który zakończył się z klasą przycisku.