我已經隱藏輸入標籤內:如何使用水豚測試隱藏輸入文件附件?
<label for="upload">
<input class="hidden" type="file" name="file[picture]">
</label>
當我點擊標籤上,我附上一個文件,然後確認。
之後,模式窗口彈出,我需要找到適當的div類。
如何在水豚的幫助下測試這個?
我已經隱藏輸入標籤內:如何使用水豚測試隱藏輸入文件附件?
<label for="upload">
<input class="hidden" type="file" name="file[picture]">
</label>
當我點擊標籤上,我附上一個文件,然後確認。
之後,模式窗口彈出,我需要找到適當的div類。
如何在水豚的幫助下測試這個?
更新:水豚2.12添加了一個make_visible
選項attach_file
因此,如果使用2.12+你可以先嚐試
attach_file('file[picture]', 'path/to/file.png', make_visible: true)
直接之前使用execute_script
自己
文件輸入是一種特殊情況,因爲它們經常因樣式原因而隱藏,並且使用系統模式進行交互。水豚使得它很難以填補在頁面上隱藏字段,因爲用戶一般無法與他們進行互動,所以對於文件輸入通常的做法是用execute_script
使它們可見,然後在填充它們。
execute_script("$('input[name=\"file[picture]\"]').removeClass('hidden')") # assumes you have jQuery available - if not change to valid JS for your environment
attach_file('file[picture]', 'path/to/file.png') # takes id, name or label text of field not a random selector
你可以做線沿線的東西:
find('label[for=upload]').click
attach_file('input[name="file[picture]"]'), 'path/to/file.png')
within '.modal-popup' do
expect(page).to have_content '.divclass'
end
我看到這個答案被接受,但它確實工作?它可能與poltergeist驅動程序工作,但可能不會與任何其他,因爲attach_file將不會與隱藏字段 –
@TomWalpole你是絕對正確的。我不得不將'Capybara.ignore_hidden_elements = false'行添加到我的rails helper中,以便使其工作。 –
@TomWalpole設置'visible:false'沒有幫助 –
使用水豚'2.7.1':
attach_file('file[picture]', 'path/to/file.png', visible: false)
這個工程沒有javascript(與make_visible選項不同) –
make_visible:true +1 –