0
私はdropzone capybaraテストを複数回呼び出そうとしています。しかし、私がそれをもう一度呼び出すと、IDはすでに使用されています。私は複数回実行できるようにIDをランダム化しようとしています。リファクタリングcapybara javascript dropzoneテスト
def drop_in_dropzone(file_path)
page.execute_script <<-JS
fakeFileInput = window.$('<input/>').attr(
{id: 'fakeFileInput', type:'file'}
).appendTo('body');
JS
attach_file("fakeFileInput", file_path)
page.execute_script("var fileList = [fakeFileInput.get(0).files[0]]")
page.execute_script <<-JS
var e = jQuery.Event('drop', { dataTransfer : { files : [fakeFileInput.get(0).files[0]] } });
$('.dropzone')[0].dropzone.listeners[0].events.drop(e);
JS
end
2回目の呼び出し時にエラーが発生しました。
Failure/Error: attach_file("fakeFileInput", file_path)
Capybara::Ambiguous:
Ambiguous match, found 2 elements matching file field "fakeFileInput"