2014-06-17 14 views
11

這樣 <input type='file' id='ok' class='lalalalala'>如何使用capybara上傳文件?

的HTML我的代碼是 attach_file( 「OK」, 「./文件集/發行人/ upload_pic.jpg」) 但我得到了失敗: 失敗:

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

那麼什麼是文件字段? 我該如何上傳文件?

回答

16

從水豚文檔:

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

你清楚有這個已經,這是一個有點令人費解。有沒有模式窗口阻止這個和/或是page.driver切換到其他的偶然?我問,因爲它實際上是不完全必要與表單按鈕交互,並導致出現模式或文件/資源​​管理器/ Finder窗口,有時這可能會混淆page.driver(例如:開關焦點到窗口而不是頁)。

儘量只在這個步驟之前移除任何click_button動作,然後試試這個:

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

這對我以前工作,在超深父DIV它結束了一個按鈕類。