Какую версию Capybara вы используете?Я предполагаю, что <3.7, потому что там была добавлена возможность вызова <code>fill_in для элемента, который будет изменен.До 3.7 он только пытался найти действующего потомка для работы.Даже в 3.7+ использование fill_in
, как вы пытаетесь, не рекомендуется, когда у вас есть простой уникальный локатор, так как он добавляет накладные расходы без всякой причины.В этом случае вы имеете дело с уникальным локатором элементов (идентификатор элемента должен быть уникальным на HTML-странице), поэтому вам не нужно использовать 'all (...). Last`, и вам нужно просто выполнить
fill_in ‘mold_table_input’, with: ‘02’
В связанной заметке: если вам когда-либо нужно найти элемент для более сложного взаимодействия, вам действительно следует предпочесть find
вместо all
, если у вас есть элементы, которые могут быть расположены уникальным образом.Не только find
будет быстрее, но и all
имеет несколько тонких ограничений на динамические страницы.