Kapibara: Bir giriş alanını kimliğine göre nasıl doldururum?


88

Bu bende var:

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

Bu alanı kimliğine göre nasıl doldururum?

Yanıtlar:


126

fill_in kimliği ilk parametre olarak kabul eder:

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

9
Öyle sanıyordum ama işe yaramıyor. Görünüşe göre onu doldurmuyor. Bulamama konusunda hata yapmaz. Sadece doldurmuyor.
Nerian

Belki söz konusu capybara kodunu ve ilgili başka bir kodu ekleyebilirsiniz.
raidfive

Sorunun Mongoid'in neresinde olduğunu keşfettim. Aday hatalarını serbest bırakın.
Nerian

@Nerian ah! anladığına sevindim
raidfive

çözümü bulduk mu?
Zakos

32

Şunlarla da yapabilirsiniz:

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

7

fill_inilk başta kafa karıştırıcı bulduğum # sembolü olmadan id'yi kabul ediyor. Ayrıca, giriş alanınız bir modal içindeyse, alanı doldurmadan önce geçişi beklemeniz veya kararmanız gerekebileceğini unutmayın.


4

Simple_form gem kullanıyorsanız , bunun form öğelerinizi otomatik olarak tanımladığını unutmayın, bu nedenle öğeleri manüel olarak kendiniz id- atamak boşunadır!

Var; ancak simple_form'un id form öğelerini izlediği bir adlandırma kuralı.

object_attribute

Dolayısıyla, için bilgileri dolduruyorsanız, aşağıdaki gibi bir iletişim nesnesi diyelim:

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

simple_form daha sonra sırasıyla her form öğesi için sırasıyla kimlikler oluşturur:

id="contact_first_name"
id="contact_last_name"

Artık tüm doldurma gereksinimlerinizi karşılamak için bu adlandırma kuralından yararlanabilirsiniz. Bu yardımcı olur umarım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.