2014-06-17 3 views
11

l'html come questo <input type='file' id='ok' class='lalalalala'>Come utilizzare il file di caricamento capibara?

il mio codice è attach_file ("ok", "./ disegno/editore/upload_pic.jpg") ma ho ottenuto fallire: Fallimenti:

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

Allora, qual è il campo del file? come posso caricare il file?

risposta

16

Dalla documentazione Capybara:

The file field can be found via its name, id or label text. 

E avete chiaramente già questo, che è un po 'sconcertante. C'è una finestra modale che blocca questo e/o il page.driver è passato a qualcos'altro per caso? Lo chiedo perché è in realtà non completamente necessario per interagire con un pulsante del modulo e causare la visualizzazione di una finestra modale o di file/Explorer/Finder, e talvolta questo può confondere il page.driver (es .: passa al focus sulla finestra anziché sul pagina).

provare a rimuovere qualunque azione click_button appena prima di questo passaggio, e quindi provare questo:

attach_file('ok', File.absolute_path('./fileset/publisher/upload_pic.jpg')) 

Questo ha funzionato per me in precedenza, in un super profondamente div parented che finì con una classe pulsante.