85 votes

Capybara : Comment remplir un champ de saisie par son ID ?

J'ai ça :

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

Comment remplir un champ par son ID ?

120voto

raidfive Points 4308

fill_in accepte l'id comme premier paramètre :

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

32voto

user2322409 Points 13

Vous pouvez également le faire avec :

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

8voto

Strangegroove Points 190

fill_in accepte l'identifiant sans le symbole #, ce que j'ai trouvé déroutant au début. Notez également que si votre champ de saisie se trouve dans une modale, vous devrez peut-être attendre la transition ou le fondu avant de pouvoir remplir le champ.

4voto

moeabdol Points 2240

Si vous utilisez simple_form Il est à noter qu'il identifie automatiquement les éléments de votre formulaire, et qu'il est donc inutile d'identifier manuellement les éléments vous-même !

Il existe cependant une convention de dénomination que simple_form suit pour identifier les éléments de formulaire.

object_attribute

Ainsi, si vous remplissez des informations pour, disons, un objet contact comme suit :

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

simple_form va alors générer automatiquement des identifiants pour chaque élément du formulaire respectivement comme suit :

id="contact_first_name"
id="contact_last_name"

Maintenant, vous pouvez simplement utiliser cette convention de dénomination pour répondre à tous vos besoins en matière de fill_in. J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X