2011-01-21 4 views

ответ

109

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

fill_in 'course_group_courses_attributes_2_name', :with => 'some text' 
+9

Я так и думал, но он не работает. Кажется, что он не заполняет его. Он не дает никаких ошибок в том, что вы его не обнаружите. Он просто не заполняет его. – Nerian

+0

Возможно, вы можете включить код capybara в вопрос и любой другой связанный код. – raidfive

+0

Я обнаружил, что проблема в Мондоиде. Освободите кандидатов от ошибок. – Nerian

26

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

find('Id or class here').set('some text') 
3

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

Есть; однако, соглашение об именах, которое 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. Надеюсь это поможет.

5

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

+0

и кажется, что, возможно, он иногда принимает только id без фунта ... – thatmiddleway