Reputation: 16177
I have this:
<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>
How do I fill in a that field by its ID?
Upvotes: 95
Views: 71952
Reputation: 6642
fill_in
accepts the id as first parameter:
fill_in 'course_group_courses_attributes_2_name', :with => 'some text'
Upvotes: 139
Reputation: 250
fill_in
accepts id without the # symbol which I found confusing at first. Also note that if your input field is in a modal, you may need to wait for the transition or fade in before the field can be filled in.
Upvotes: 8
Reputation: 5049
If you're using simple_form gem then you must note that it does automatically id your form elements, hence manually id-ing elements yourself is futile!
There is; however, a naming convention that simple_form follows to id form elements.
object_attribute
So if you're filling-in information for let's say a contact object as follows:
= simple_form_for @contact do |f|
= f.input :first_name
= f.input :last_name
simple_form will then automatically generate ids to each form element respectively as so:
id="contact_first_name"
id="contact_last_name"
Now you can simply make use of this naming convention to fulfill all your fill_in needs. Hope this helps.
Upvotes: 4
Reputation: 824
You can also do it with:
find('Id or class here').set('some text')
Upvotes: 35