Я создал пользовательскую форму загрузки, используя следующий html-стек:
<form>
<label></label>
<input type="file">
</form>
Поле файла скрыто через css с свойством display: none
. Поэтому диалог прикрепления файла вызывается пользователем, когда она нажимает на ярлык (который является обычным стилем).
В моем тестовом тесте я не могу прикрепить файл, так как поле ввода скрыто. Я пробовал несколько возможных решений, но ни один из них не работает:
find(:xpath, '//input', visible: false).set(some_file_path)
или
within('form') do
attach_file(:input, some_file_path, visible: false)
end
И многие другие. Все время, в которое я попал, не удалось щелкнуть элемент по ошибке неизвестной позиции. Как только я удаляю ярлык, перекрывающий поле ввода, сделайте его видимым и запустите мою спецификацию. Поэтому проблема заключается в том, что:
- Поле входного файла имеет свойство
display: none
(и, следовательно, не может быть найдено) - Существует метка, перекрывающая скрытое поле файла (возможно)
Есть ли способ заставить Capybara с драйвером Capybara-webkit справиться с этой деликатной ситуацией каким-то разумным способом?