2017-01-11 10 views
0

私はさまざまなオプションを持つファイルを添付しようとしましたが、機能しません。カピバラは入力タグ付きファイルを添付していません

1)attach_file('file-input', Rails.root + 'spec/files/books.jpg',:visible => false)

Error: Unable to find file field "file-input"

私はCSSを見つけることができ、そのpage.has_css? ('.file-input')を使用している場合。

は、私はまた、他のロケータを使用してみました:

2)attach_file('#library_resource_files', Rails.root + 'spec/files/books.jpg',:visible => false)

Error: Unable to find file field "file-input"

シナリオ:正常に動作しているアップロードボタンclick_link 'アップロード' をクリックします。 とポップアップが開きます。どこにファイルを添付するためにボタンをクリックする必要がありますか?ここで

はHTMLである: - http://www.rubydoc.info/gems/capybara/Capybara/Node/Actions#attach_file-instance_method - attach_fileのためのドキュメントから

<input multiple="multiple" accept="image/*, 
    audio/*, 
    video/*, 
    application/x-shockwave-flash, 
    application/vnd.adobe.flash.movie, 
    application/pdf, 
    application/msword, 
    application/vnd.google-apps.*, 
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, 
    application/vnd.openxmlformats-officedocument.presentationml.presentation, 
    application/vnd.openxmlformats-officedocument.wordprocessingml.document, 
    application/octet-stream, 
    text/plain" 
class="file-input" type="file" 
name="library_resource[files][]" id="library_resource_files"> 

答えて

0

それがそこにID、名前、または関連するラベルのテキスト(それはクラス名やと一致していないに基づいて要素にマッチしますCSSセレクタ文字列)。したがって、あなたは(ドライバーが使用されているに依存します)があり、あなたのためにそれが本当であれば、実際のファイルの入力は、ページ上で頻繁に表示されていないスタイリング上の理由から

attach_file('library_resource_files', Rails.root + 'spec/files/books.jpg') 

ような何かをしたい

を行うことができるだろう
attach_file('library_resource_files', Rails.root + 'spec/files/books.jpg', visible: false) 

問題が解決しない場合、あなたは

+0

attach_file呼び出す前に、それが見えるようにexecute_scriptを使用して入力CSSを変更する必要がありますreplying..Iためのトーマスは本当に感謝ありがとうございます。どの入力要素が隠されているかを特定する方法を教えてください。上記のhtmlで私は識別することができません。してください。もう一度おねがいします - – Meg

+0

@Meg私はそれが隠されているのか分かりません。実際のブラウザでページを開いているかどうかを調べ、要素を調べたり、ページ上にスペースがあるかどうか、透明であるかどうか(不透明度:0)などを知るためには、 。 –

+0

[email protected]に感謝します。私は理解しようとします。 – Meg

関連する問題