你不应该有多个元素具有相同的id,因为这是非法的html。根据示例代码(不确定:class选择器在猜测什么),您确实希望每个元素都有一个“attach_field”类。
#attach_file
不将元素作为第一个参数,而是使用元素的名称、id或标签文本。由于您已经有了元素,您可以对每个元素调用#set
page.all(:css, '.attach_field').each do |el
el.set "path of file to upload"
end
如果你只是想输入你能做的每一个文件
page.all(:css, 'input[type="file"]').each do |el|
el.set "path of file to upload")
end
还要注意,您需要在
click_button "Add"
和
expect(Post.count).to eq(1)
让测试等待提交完成-类似
expect(page).to have_text('Image Uploaded') # if the page adds text when image is uploaded
或
expect(page).to have_current_path('/some_new_path') # if the page url changes after the upload is complete