Капибара: как заполнить поле ввода по его идентификатору

У меня есть это:

<input class="string optional" 
    id="course_group_courses_attributes_2_name" 
    name="course_group[courses_attributes][2][name]" 
    placeholder="Lengua" 
    size="15" 
    type="text" />
</div> 

Как заполнить это поле по его идентификатору?


person Nerian    schedule 21.01.2011    source источник


Ответы (4)


fill_in принимает идентификатор в качестве первого параметра:

fill_in 'course_group_courses_attributes_2_name', :with => 'some text'
person raidfive    schedule 21.01.2011
comment
Я так и думал, но это не работает. Вроде не наполняет. Он не дает никаких ошибок о том, что не нашел его. Просто не наполняет. - person Nerian; 21.01.2011
comment
Возможно, вы можете включить рассматриваемый код водосвинки и любой другой связанный код. - person raidfive; 21.01.2011
comment
Я обнаружил, что проблема в Mongoid. Релиз ошибок кандидатов. - person Nerian; 25.01.2011
comment
@Нериан ах! рад, что ты понял это - person raidfive; 25.01.2011
comment
у нас есть решение? - person Zakos; 27.05.2015
comment
@raidfive какое должно быть имя для описания? например, описать пользователя или что-то еще? - person user1735921; 02.09.2015

Вы также можете сделать это с помощью:

find('Id or class here').set('some text')
person user2322409    schedule 30.06.2014

fill_in принимает идентификатор без символа #, что сначала меня смутило. Также обратите внимание, что если ваше поле ввода находится в модальном режиме, вам может потребоваться дождаться перехода или постепенного появления, прежде чем поле можно будет заполнить.

person Strangegroove    schedule 18.11.2015

Если вы используете гем simple_form, то вы должны отметить, что он автоматически идентифицирует ваши элементы формы, поэтому вручную идентифицируйте элементы самостоятельно бесполезно!

Есть; однако соглашение об именах, которому следует simple_form для элементов формы id.

object_attribute

Итак, если вы заполняете информацию, скажем, для контактного объекта, следующим образом:

= simple_form_for @contact do |f|
  = f.input :first_name
  = f.input :last_name

Затем simple_form будет автоматически генерировать идентификаторы для каждого элемента формы соответственно следующим образом:

id="contact_first_name"
id="contact_last_name"

Теперь вы можете просто использовать это соглашение об именах, чтобы удовлетворить все ваши потребности fill_in. Надеюсь это поможет.

person moeabdol    schedule 18.08.2015