Этот ответ относится к тому, как манипулировать элементом родного брата, на что, как я полагаю, исходный вопрос ссылается на
Ваша гипотеза вопроса работает с незначительным изменением. Если динамически генерируемое поле выглядит так и не имеет идентификатора:
<div>
<input></input>
<button>Test</button>
</div>
Ваш запрос будет:
find('button', text: 'Test').find(:xpath, "..").find('input').set('whatever')
Если динамически сгенерированный ввод поставляется с элементом id (будьте осторожны с этим, хотя, как и в угловых, они изменяются в зависимости от добавления и удаления элементов), это будет примерно так:
find('button', text: 'Test').find(:xpath, "..").fill_in('#input_1', with: 'whatever')
Надеюсь, это поможет.