2014-06-17 9 views
11

html jak to <input type='file' id='ok' class='lalalalala'>Jak korzystać z przesyłanego pliku kapibara?

mój kod jest attach_file ("OK", "./ fileset/wydawcy/upload_pic.jpg") ale mam zawieść: Awarie:

Capybara::ElementNotFound: 
    Unable to find file field "ok" 

więc czym jest pole pliku? Jak mogę przesłać plik?

Odpowiedz

16

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.