Capivara: como preencho um campo de entrada por seu ID

87

Eu tenho isto:

<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> 

Como faço para preencher um campo por seu ID?

Nerian
fonte

Respostas:

124

fill_in aceita o id como primeiro parâmetro:

fill_in 'course_group_courses_attributes_2_name', :with => 'some text'
raidfive
fonte
9
Achei que sim, mas não está funcionando. Parece que não o preenche. Não dá nenhum erro sobre não encontrá-lo. Simplesmente não o preenche.
Nerian de
Talvez você possa incluir o código da capivara em questão e qualquer outro código relacionado.
raidfive
Eu descobri que o problema estava no Mongoid. Libere bugs dos candidatos.
Nerian
@Nerian ah! que bom que você descobriu
raidfive
temos a solução?
Zakos de
32

Você também pode fazer isso com:

find('Id or class here').set('some text')
user2322409
fonte
7

fill_inaceita id sem o símbolo #, o que achei confuso no início. Observe também que, se o seu campo de entrada estiver em modal, pode ser necessário aguardar a transição ou desaparecer antes que o campo seja preenchido.

Strangegroove
fonte
4

Se você estiver usando a gem simple_form , deve-se notar que ela identifica automaticamente os elementos do seu formulário, portanto, identificar os elementos manualmente é inútil!

Há sim; no entanto, uma convenção de nomenclatura que simple_form segue para os elementos do formulário id.

object_attribute

Portanto, se você estiver preenchendo informações para, digamos, um objeto de contato da seguinte maneira:

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

simple_form irá gerar automaticamente ids para cada elemento do formulário, respectivamente, da seguinte forma:

id="contact_first_name"
id="contact_last_name"

Agora você pode simplesmente fazer uso dessa convenção de nomenclatura para atender a todas as suas necessidades de preenchimento. Espero que isto ajude.

Moeabdol
fonte