2012-12-19 13 views
7

Trong Rails của tôi 3 ứng dụng, tôi đã sử dụng attr jQuery() phương pháp để làm những việc như thế này:Làm cách nào để sử dụng Capybara để kiểm tra xem phần tử biểu mẫu có bị vô hiệu hóa khi sử dụng phương thức prop của jQuery không?

$('#application_dust_type_id').attr('disabled', 'disabled'); 

Tôi sẽ sử dụng thử nghiệm/Unit, Capybara và Capybara-webkit để kiểm tra này với:

assert page.has_selector? 'select[id=application_dust_type_id][disabled=disabled]' 

Bây giờ, tôi đang cố gắng để chuyển sang sử dụng các phương pháp chống đỡ, như jQuery khuyến cáo:

$('#application_dust_type_id').prop('disabled', true) 

Nhưng bây giờ sự khẳng định trên thất bại, mặc dù javascript vẫn hoạt động tương tự trong trình duyệt.

Làm cách nào để xác nhận dựa trên thuộc tính của phần tử (thay vì thuộc tính) bằng cách sử dụng capybara?

Trả lời

7

Cố gắng chỉ kiểm tra sự tồn tại của một thuộc tính disabled như đó là tất cả những gì thực sự cần thiết để vô hiệu hóa một đầu vào:

assert page.has_selector? 'select[id=application_dust_type_id][disabled]' 

Lưu ý rằng giá trị của một thuộc tính disabled là tranh luận. Bạn có thể đặt disabled="false" hoặc disabled="foobar" và phần tử sẽ được hiển thị là bị tắt.