Capybara: Làm cách nào để điền vào trường nhập bằng ID của nó


88

Tôi có cái này:

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

Làm cách nào để điền vào trường đó theo ID của nó?

Câu trả lời:


126

fill_in chấp nhận id làm tham số đầu tiên:

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

9
Tôi nghĩ vậy, nhưng nó không hoạt động. Có vẻ như nó không lấp đầy nó. Nó không đưa ra bất kỳ lỗi nào về việc không tìm thấy nó. Nó chỉ không lấp đầy nó.
Nerian

Có thể bạn có thể bao gồm mã capybara được đề cập và bất kỳ mã liên quan nào khác.
đột kích vào

Tôi đã phát hiện ra rằng vấn đề ở đâu trong Mongoid. Phát hành lỗi ứng viên.
Nerian

@Nerian ah! rất vui vì bạn đã tìm ra nó
đột kích vào

chúng tôi đã có giải pháp?
Zakos


7

fill_inchấp nhận id không có ký hiệu # mà lúc đầu tôi thấy khó hiểu. Cũng lưu ý rằng nếu trường đầu vào của bạn ở một phương thức, bạn có thể cần đợi quá trình chuyển đổi hoặc mờ dần trước khi trường có thể được điền vào.


4

Nếu bạn đang sử dụng đá quý simple_form thì bạn phải lưu ý rằng nó tự động định danh các phần tử biểu mẫu của bạn, do đó, bản thân các phần tử nhập id theo cách thủ công là vô ích!

Có; tuy nhiên, quy ước đặt tên mà simple_form tuân theo đối với các phần tử dạng id.

object_attribute

Vì vậy, nếu bạn đang điền thông tin cho một đối tượng liên hệ như sau:

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

simple_form sau đó sẽ tự động tạo id cho từng phần tử biểu mẫu tương ứng như vậy:

id="contact_first_name"
id="contact_last_name"

Bây giờ bạn có thể chỉ cần sử dụng quy ước đặt tên này để đáp ứng tất cả các nhu cầu điền_in của bạn. Hi vọng điêu nay co ich.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.