web-dev-qa-db-ja.com

カピバラアップロードファイルの使い方は?

このようなhtml<input type='file' id='ok' class='lalalalala'>

私のコードはattach_file( "ok"、 "./ filename/publisher/upload_pic.jpg")ですが、失敗しました:失敗:

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

では、ファイルフィールドとは何ですか?ファイルをアップロードするにはどうすればよいですか?

13
user3203342

カピバラのドキュメントから:

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

そして、あなたは明らかにこれをすでに持っています、それは少し不可解です。これをブロックするモーダルウィンドウがありますか、および/またはpage.driverが偶然に別のものに切り替えられていますか?実際には完全に必要というわけではありませんフォームボタンを操作してモーダルウィンドウまたはファイル/エクスプローラー/ファインダーウィンドウを表示する必要があるため、質問します。これにより、page.driverが混乱する場合があります(例:フォーカスをページの代わりにウィンドウ)。

この手順の直前にclick_buttonアクションを削除してから、次のことを試してください。

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

これは以前、非常に親の深いdivで機能し、ボタンクラスになりました。

20
etusm